【问题标题】:Is there any equivalent to ORACLE DBMS_SQL in PostgreSQL?PostgreSQL 中是否有与 ORACLE DBMS_SQL 等价的东西?
【发布时间】:2018-01-07 12:05:16
【问题描述】:

我们正在进行从 ORACLE 到 POSTGRESQL 的大转变,我正在尝试定义我们应该更改的所有内容,而且 PostgreSQL 中似乎没有 DBMS_SQL。 我知道我可以用 Cursors 做所有事情,但 DBMS_SQL 非常适合代码重用和在不同代码之间移动光标。

【问题讨论】:

    标签: oracle postgresql cursor dynamic-sql equivalent


    【解决方案1】:

    DBMS_SQL的一部分可以用动态游标或动态SQL代替:

    DECLARE r record;
    BEGIN
      FOR r IN EXECUTE 'SELECT ...'
      LOOP
        ...
    
    DECLARE
      c1 refcursor;
      r record;
    BEGIN
      OPEN c1 FOR EXECUTE 'SELECT ...'
      FOR r IN c1
      LOOP
        ...
    

    一些文档:

    【讨论】:

    • ...你可以在函数之间传递refcursor对象。
    • 您好,感谢您的回复,但我正在寻找一些东西来替换包中的 dbms_sql 过程。这个包有类似的程序:TO_REFCURSOR 或 TO_CURSOR_NUMBER。一般来说,dbms_sql 更适合代码重用,而我无法从 pgsql 游标中获得。
    猜你喜欢
    • 2020-07-21
    • 2018-06-01
    • 2022-01-10
    • 2018-05-26
    • 2014-10-14
    • 2012-12-30
    • 1970-01-01
    • 2021-09-17
    • 2011-11-16
    相关资源
    最近更新 更多