Postgresql存储过程的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Postgresql存储过程的问题

落地花开啦 2016-02-20 15:59:01 3260

在POSTGRESQL中写存储过程,感觉几个问题
1)定义类型
不能像ORACLE那样,直接就可以在存储过程中定义,非要预先在存储过程外定义好类型,才能使用,比较麻烦,缺乏灵活性,因为很多类型,只是临时性使用,或者只在本过程中用。
2)表类型
在ORACLE中有个TABLE类型,非常好用,可以把数据检索出来,放在这个类型里处理,但POSTGRESQL中无此类型,目前还不知道有何方法,跟ORACLE表类型类似
3)批处理
在ORACLE中,有个BULK COLLECT ,可以批量检索数据,检索磁盘IO次数,可以大幅度提高效率,
但POSTGRESQL中,还没有类似功能 ,虽然POSTGRESQL可以使用FETCH 100 FROM CURSOR_X 批量列出,但没办法返回到一个集合变量里,比如在存储过程中,FETCH INTO 只能返回一条结果到变量,处理大量数据时,效率会比较低。
4)判断表是否存在,
例如没有CREATE TABLE XXXX IF NOT EXIST TABLE这样的语句,导致在存储过程中需要建立临时表时候,
可能重复建立,导致出错。
这几个功能很重要,不知道POSTGRESQL为何不实现???。

post存储 post问题 存储过程问题 存储pos pos问题
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:45:26

    1) postgresql支持存储过程里面定义类型或变量,以及初始化值和动态执行等高级特性
    2)postgresql也有type类型,create type type_name(col1,col2)
    3)临时表可以变通
    4)postgresql 9.x版本支持这个语法
    你用的数据库版本是否比较低,所以有些功能没有实现。

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题