Postgre Sql 和Oracle sql语句的区别记录

最近从oracle 切换到 postgre sql

可是数据模型设计工具是基于oracle的,所以,批量导出的sql要统一修改。

记录一下修改要点:

建表语句:

  1. oracle Number -> PgSql integer ,整型,不需要限定长度, -2147483648 到 +2147483647。
  2. oracle varchar2 -> PgSql charater ,长度限定不变。
  3. comment on column 语法通用。
  4. constraint 语法通用。
  5. if exist语法 PgSql不支持。

序列在PostgreSql中进行查询和创建:

–查看数据库中有哪些序列–r =普通表, i =索引,S =序列,v =视图,m =物化视图, c =复合类型,t = TOAST表,f =外部表

select * from pg_class where relkind='S'

–新建序列

CREATE SEQUENCE "public"."seq_name" 
INCREMENT 1
MINVALUE  1
MAXVALUE 2147483647
START 1
CACHE 1;

postgresql 支持jsonb字段内的key value查询:

select * from wms_message_log l,jsonb_array_elements(l.body->’detailList’) as aes,
jsonb_each(aes) doc

where doc.key=’recordCode’
and doc.value::TEXT like ‘%PDON912715153234956288%’;

SELECT * FROM “sc_rw_result_record” rr
where (business_data::json#>>'{expressCode}’)::text in (”)

标签

发表评论