【问题标题】:Add a column to SYS_REFCURSOR in Oracle [duplicate]在 Oracle 中向 SYS_REFCURSOR 添加一列 [重复]
【发布时间】:2015-06-30 11:54:46
【问题描述】:

我有一个返回 SYS_REFCURSOR 的过程 MY_PROC。我的新要求是创建一个新过程,该过程返回 SYS_REFCURSOR 以及 MY_RPOC 返回的所有数据以及一个带有新数据的额外列。我想重用过程 MY_PROC。

Oracle 中是否有任何方法可以将列添加到 SYS_REFCURSOR?或者您知道如何解决这个问题?

感谢您的帮助。

【问题讨论】:

  • 您能发布您现有的代码吗?
  • this 的重复?
  • 游标一旦打开就无法修改。您可以编写一堆代码以各种方式解决此问题,但您编写的避免重复游标 SQL 的代码将比“几乎重复”的代码更长、更难理解和维护。祝你好运。

标签: oracle plsql oracle11g sys-refcursor


【解决方案1】:

您可以像这样动态地打开光标:

OPEN cur
  FOR
   ' SELECT a,b,c' ||
   case when i_add_column = 'Y' then ',d'  end ||
   ' FROM table1' 

i_add_column 作为参数传递,并根据值添加或不添加新列。

【讨论】:

    猜你喜欢
    • 2016-10-25
    • 2018-05-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多