
postgresql兼容性
Ruby-PGer
来了就别走了。
展开
-
postgresql实现oracle系统视图user_sequences
序列:USER_SEQUENCES(SEQ)要显示序列的属性,可以查询USER_SEQUENCES 数据字典视图。该视图也能用公有同义词SEQ 进行查询。USER_SEQUENCES 视图的列如下所示:Sequence_Name 序列名Min_Value 序列的最小值Max_Value 序列的最大值Increment_By 序列值之间的增量Cycle_Flag 一个标志,一旦达到Max_Value 值,用来表明该值能否再循环回Min_Value 值Order_Flag 一个标志,用来表明序列号原创 2021-06-01 14:26:33 · 820 阅读 · 1 评论 -
PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT
PostgreSQL mysql 兼容性之 - 字符编码转换 CONVERT技术标签: 数据库 记录PostgreSQL 字符集转换方法postgresql支持的转换函数如下:mysql中的blob类型在pgsql中以bytea类型替代,但是在解析bytea格式的时候mysql使用convert函数来转换。而在pgsql中使用convert_from, convert_to或者直接使用convert即可完成Oracle convert的功能。例如如果像返回依旧是bytea的话:selec转载 2021-04-22 10:09:25 · 3101 阅读 · 0 评论 -
postgresql etc功能改写Oracle start with connect by递归功能
目前已做修改的三种例子:1、start with connect by改写SELECTt.*FROMpub_organ t,(SELECTorgan_idFROM(–原来的写法– SELECT– p.organ_id,– p.organ_type– FROM– pub_organ p START WITH p.organ_id = ‘370000’ CONNECT BY PRIOR p.organ_id = p.parent_id改写成PG的: with原创 2021-01-27 18:14:58 · 3732 阅读 · 0 评论 -
postgresql兼容MySQL datediff函数
datediff函数兼容解决方案datediff函数说明datediff函数返回俩日期相差的天数,如select datediff(‘2021-12-21 10:21:23’,now())在postgresql中,我们使用date_part函数来返回俩日期之间的天数date_part函数使用方法:date_part(text,timestamp) double precision 获取子域(等效于extract);date_part(‘hour’,timestamp ‘2001-02-162原创 2021-01-05 10:36:38 · 3431 阅读 · 0 评论 -
posthresql兼容Oracle dual虚表
Postgresql中没有 dual 虚拟表,为保证兼容性,需创建伪视图(view)代替:create or replace view dual asselect NULL::"unknown"where 1=1;alter table dual owner to postgres;grant all on table dual to postgres;grant select on table dual to public;...原创 2021-01-05 09:45:37 · 862 阅读 · 0 评论 -
postgresql兼容MySQL 时间函数date_format
MySQL DATE_FORMAT() 函数定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。在postgresql创建同名函数实现相同的功能CREATE OR REPLACE FUNCTION date_format(indate anyelement, intext text) RETURNS text LANGUAGE plpgsqlA原创 2021-01-05 09:40:53 · 5115 阅读 · 2 评论 -
postgresql兼容MySQL on update current_timestamp
问题描述PostgreSQL执行Insert语句时,自动填入时间的功能可以在创建表时实现,但更新表时时间戳不会自动自动更新。在mysql中可以在创建表时定义自动更新字段,比如 :create table ab (id int,changetimestamp timestampNOT NULLdefault CURRENT_TIMESTAMPon update CURRENT_TIMESTAMP);那PostgreSQL中怎么操作呢?解决方案通过触发器实现,具体如下:create o原创 2020-12-24 17:23:07 · 3997 阅读 · 1 评论 -
postgresql兼容MySQL if函数
if函数说明:在mysql中if()函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下:IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值postgresql自定义if函数兼容:create or replace function if(bln boolean,inValue1 anyelement,inValue2 anyelement)returns anyelement as原创 2020-12-24 17:19:14 · 8273 阅读 · 1 评论 -
postgresql兼容Oracle dbms_output.put_line
Oracle dbms_output.put_line用于输出打印信息postgresql使用raise notice打印信息改写例子:Oracle原写法DBMS_OUTPUT.PUT_LINE('PROCEDURE [P_ASD] BEGIN … ’ || TO_CHAR(SYSDATE, ‘YYYY-MM-DD HH24:MI:SS’));postgresql改写:raise notice ‘PROCEDURE [P_ASD] BEGIN …%’ , TO_CHAR(SYSDATE, ‘Y原创 2020-12-24 17:12:56 · 1445 阅读 · 1 评论