【问题标题】:What is the datatype for Cursor in Oracle Stored Procedure?Oracle 存储过程中游标的数据类型是什么?
【发布时间】:2017-01-24 22:20:22
【问题描述】:

我正在尝试在 Oracle 中运行存储过程。定义如下:

CREATE OR REPLACE PROCEDURE real_estate_contracts
(
  P_FROM_DATE DATE,
  P_TO_DATE DATE,
  o_cursor  OUT ACCOUNTING_REPORTS.results_cursor 
 )

那我就这么称呼它

BEGIN
  :P_FROM_DATE := to_date(trunc(trunc(sysdate,'MM')-1,'MM')+21);
  :P_TO_DATE := to_date(trunc(sysdate,'MM')+20);
  :O_CURSOR := NULL;


  QAW.REAL_ESTATE_CONTRACTS ( :P_FROM_DATE, :P_TO_DATE, :O_CURSOR );

END;

但我不知道如何定义 Cursor 数据类型。

【问题讨论】:

    标签: oracle stored-procedures cursor


    【解决方案1】:

    我认为您希望将其定义为 SYS_REFCURSOR。看看下面的例子:https://oracle-base.com/articles/misc/using-ref-cursors-to-return-recordsets

    【讨论】:

      【解决方案2】:

      在 SQL 开发者中你可以这样做:

      VARIABLE cur REFCURSOR;
      
      BEGIN
        QAW.REAL_ESTATE_CONTRACTS(
          p_from_date => ADD_MONTHS( TRUNC( SYSDATE, 'MM' ), - 1 ) + 21,
          p_to_date   => TRUNC( SYSDATE, 'MM' ) + 20,
          o_cursor    => :cur
        );
      END;
      /
      
      PRINT cur;
      

      【讨论】:

        猜你喜欢
        • 2017-01-22
        • 1970-01-01
        • 2020-08-01
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多