在Oracle中运行存储过程时出错-无法打印光标
我创建以下脚本是为了使报告流程标准化:在Oracle中运行存储过程时出错-无法打印光标,oracle,stored-procedures,toad,Oracle,Stored Procedures,Toad,我创建以下脚本是为了使报告流程标准化: CREATE OR REPLACE Procedure cba.ITEM_REPORT (date IN varchar2, item IN varchar2, c1 in out SYS_REFCURSOR) AS BEGIN OPEN c1 FOR SELECT DISTINCT * from abc.ITEM_TRANS_TABLE WHERE DEAL.FEED_EFF_DATE = date
CREATE OR REPLACE Procedure cba.ITEM_REPORT
(date IN varchar2, item IN varchar2, c1 in out SYS_REFCURSOR)
AS
BEGIN
OPEN c1 FOR
SELECT DISTINCT * from abc.ITEM_TRANS_TABLE
WHERE
DEAL.FEED_EFF_DATE = date
AND DEAL.EDSF_SOURCE_SYSTEM_FEED_CODE = item;
END;
/
我正在尝试使用以下命令运行存储过程:
set serveroutput on size 100000;
variable rc refcursor;
exec EDSETL.STANDARDCOGNOS('31-jan-20', 'WSSTOR',:rc );
print rc;
运行上述命令时,我会出现以下错误:
未知错误:ORA-65535
打印变量“rc”时出错
有人能帮忙吗?您的程序名称甚至与cba.ITEM\u报告中的不匹配-
vsEDSETL.STANDARDCOGNOS
。你确定你在调用你创建的过程吗?我有一种感觉,蟾蜍这样做是因为print:rc
,带有前导冒号;但我已经(非常)长时间没有使用它了……我认为c1只需要定义为OUT。我会将date参数重命名为保留字以外的其他名称,并确保数据类型与DEAL.FEED\u EFF\u date匹配,或者确保在适当的情况下进行比较时将其改为\u date()。不,让Oracle来转换数据类型,显式地做。哦,顺便问一下,“交易”在哪里?你是说“ABC”吗?