POSTGRESQL存储过程的问题

tony_trh 发布于 2014/01/09 11:28
阅读 1K+
收藏 0

在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为何不实现???。






加载中
0
kenyon_君羊
kenyon_君羊

1) postgresql支持存储过程里面定义类型或变量,以及初始化值和动态执行等高级特性

2)postgresql也有type类型,create type type_name(col1,col2)

3)临时表可以变通

4)postgresql 9.x版本支持这个语法

你用的数据库版本是否比较低?

黄裳23
黄裳23
odbc调用存储过程插入数据,character varing类型的参数,在C#中设定为OdbcType的任何一种类型,调试时都是unknown。为什么啊?
返回顶部
顶部