PostgreSQL Oracle 兼容性之 - substrb (基于字节的字符串截取)
背景 Oracle的substrb函数,用于基于字节流的截取,需要考虑多字节字符串的编码问题,未截取完整字符,则不截取。 https://docs.oracle.com/cd/B12037_01/olap.101/b10339/x_stddev004.htm substr则用于基于字符串的截取。 Postg...
背景 Oracle的substrb函数,用于基于字节流的截取,需要考虑多字节字符串的编码问题,未截取完整字符,则不截取。 https://docs.oracle.com/cd/B12037_01/olap.101/b10339/x_stddev004.htm substr则用于基于字符串的截取。 Postg...
背景 如何将程序依赖的动态库拷贝到指定的目录? 例子 1、通过LDD查看依赖的动态库。 # ldd postgres linux-vdso.so.1 => (0x00007ffcfc324000) libpthread.so.0 => /lib64/lib...
背景 PostgreSQL数据库中有哪些关键字,这些关键字的使用限制如何? https://www.postgresql.org/docs/10/static/sql-keywords-appendix.html 文档中的说明并不是特别清晰,(并且KEYWORDS与版本强相关),所以使用pg_get_keyw...
背景 PostgreSQL中有一些系统列(即行的头部信息的列),例如物理行号,COMMAND ID,事务号,以及OID。 当我们建表时,不能使用冲突的列名,否则会报错: postgres=# create table a(ctid int); 错误: 42701: 字段名 "ctid" 与系统字段名冲突...
背景 Oracle里面支持时间戳与数字的加减,数字默认单位为天。 PostgreSQL 支持时间戳与interval类型进行加减。日期支持与整型做加减。 为了兼容Oracle(时间戳与数字加减),我们可以复写操作符来实现时间戳与数字的加减。 复写操作符 1、自定义几个函数,用于时间戳与数字的加减。 pos...
背景 Linux内核分配失败,现象: 内存使用一定量后,HANG。 dmesg中可能会有类似这样的错误,系统HANG住,无法连接,需要重启解决。 page allocation failure Oct 24 11:27:42 kernel: : [21289.479063] pytho...
背景 本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/15/count_distinct/ 正文 UV vs. PV 在互联网中,经常需要计算UV和PV。所谓PV即Page View,网页被打开多少次(YouTube等视频网站非常重视视频的点击率,即被播放多少次,也即...
背景 有些时候,为了方便调度,可能需要在数据库中执行一些系统命令。 例如清理OSS对象存储,查看磁盘使用量等。 使用plpythonu,可以简便的调用系统命令。 例子 1、执行命令,返回命令的返回值。 create or replace function exec_cmd1(cmd text) retu...