EDB PPAS的"坑" 不兼容PostgreSQL一例-阿里云开发者社区

开发者社区> 阿里云数据库> 正文

EDB PPAS的"坑" 不兼容PostgreSQL一例

简介: 这样一段正常的兼容ORACLE的代码,在使用社区版本的psql连接到PPAS时,执行异常 postgres=> create table about_we (id int, info text); create sequence SEQ_ABOUT_WE_ID; postgres=> C

这样一段正常的兼容ORACLE的代码,在使用社区版本的psql连接到PPAS时,执行异常

postgres=> create table about_we (id int, info text); create sequence SEQ_ABOUT_WE_ID;

postgres=> CREATE OR REPLACE TRIGGER TRI_ABOUT_WE_ID BEFORE INSERT ON ABOUT_WE
FOR EACH ROW
BEGIN
  SELECT SEQ_ABOUT_WE_ID.nextval
  INTO :new.ID
  FROM dual;  
end;
ERROR:  42601: syntax error at end of input
LINE 6:   FROM dual;
                    ^
LOCATION:  scanner_yyerror, scan.l:1374

但实际上,语法是PPAS兼容ORACLE的语法,并没有问题。
原因惊人,竟然是PPAS在客户端psql上做了hack,来实现这一的语法兼容。
所以使用社区版本的psql是不行的,记住咯。
以后不要使用社区版本的psql连接PPAS了,否则就等着给自己挖坑吧。 请使用EDB自己的那套东西。
或者使用pgadmin,因为pgadmin号称兼容ppas。
https://www.pgadmin.org/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云数据库
使用钉钉扫一扫加入圈子
+ 订阅

帮用户承担一切数据库风险,给您何止是安心!

官方博客
链接