我试图在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数据类型。
答案 0 :(得分:1)
我认为您希望将其定义为SYS_REFCURSOR。请看下面的示例:https://oracle-base.com/articles/misc/using-ref-cursors-to-return-recordsets
答案 1 :(得分:0)
在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;