orcale 和postGresql语法差异
首先用工具(Ora2pg)自动转换
1.VARCHAR2 -----> VARCHAR
2.DATE ----->timestamp
3.SYSDATE---->localtimestamp
4.Oracle中''和NULL是相同的,但pgsql是不同的,所以需要将''修改成NULL
5. orcale字符串连接符 ||,pg一般用·concat()函数代替
6.trunc(时间) → date_trunc()
7.to_char, to_number, to_date pgsql都需要指定格式
8.decode转化为casewhen
9.NVL ------>coalesce
10.外连接(+) → left(right) join
11.GOTO语句 → pgsql不支持
12.oracle不支持boolean类型,可以用integer型代替
13.pgsql中 :: 为类型转换,oracle中不具有;
14.PostgresQL中没有rownum,无法使用where rownum < = X的方法进行分页,取而代之的是limit X,offset Y方法
15.pgsql中,查询语句from子句中,表名后可以加 as 别名,oracle中表名后不允许出现as
16.pgsql子查询要求严格,必须具有别名才可以;
17. CLOB -----> TEXT
18. 序列
SELECT schema.prefix_table1_sequence.nextval AS nCode FROM DUAL (orcale语法)
SELECT nextval( 'schema.prefix_table1_sequence') AS nCode FROM DUAL 此方法前提是dual视图已建立,如没有,可省略FROM DUAL(pgsql语法)
|