自学内容网 自学内容网

POSTGRESQL跟ORACLE语法区别和相同之处

跟ORACLE语法区别之处

1. Update和delete语法区别

Pg 和MySQL Update和delete的时候表名不能加别名

2. 插入数字类型不一样

ORACLE 对number类型的数据可以用’’ 字符串标记插入,但是PG不行,必须要进行正确的数据类型

3. SEQ使用不同

ORACEL的SEQ 是 SELECT SEQ,NEXT_VAL FROM DUAL

PG 使用方法select nextval('SEQ_NAME')

4. 时间格式化不一样

用于日期/时间格式化的模式:

5. 翻页查询不一样

oracle用rownum控制,pg用limit控制

6. 差集不一样

oracle用minus,pg用EXCEPT

7. 时间函数不一样

获取通用时间SELECT CURRENT_TIMESTAMP,oracle一般用sysdate,PG 还有current_date(),current_time();

8. 条件判断不一样

PG没有decode判断,需要用case when then 代替

9.判断字符串为空

10.查询字符串INSTR不一样

11.执行存过不一样

Pg存过执行都是CALL XXX();

即便在存储内部调用存过都是call xxx();必须要写call

Oracle 可以用begin xxx();end;调用

也可以用{call xxx(); }

在存过内部调用存过不需要写call ,直接写函数名称

跟ORACLE语法相同之处

都有SEQUENCE 获取自增值

字符串连接都用||

存过的赋值都是 := 判断都是=

都可以指定动态查询,比如存过中使用动态SQL

--PostgreSql

execute 'select count(1) from test' into v_count;

--Oracle

execute immediate 'select count(1) from test' into v_count;

--PostgreSql

open cur forexecute'select* from xxx';

loop

end loop;

close cur;

时间运算都可以用+1 或者-1 都是1天

比如 10天前 current_timstamp -10;


原文地址:https://blog.csdn.net/m0_46478042/article/details/144294494

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!