我有一个从第三方报告工具调用的oracle存储过程 . 存储过程在执行时不返回任何行 .
我知道查询返回结果的事实,它只是在 where
子句中出错,参数是从网站传递的 .
我正在尝试查看正在执行的查询但日志不显示查询,只是它正在调用存储过程 . 我没有访问网站代码来做一个响应写入并显示存储过程或参数 . 您能否就如何从下面的存储过程查看sys_refcursor提供指导?我正在使用TOAD,当我使用toad脚本运行器时,我没有看到任何结果
码
create or replace procedure dolphin.report_four
( p_1 char,
P_2 date,
p_recordset out sys_refcursor)
AS
Begin
Select
column_1,
column_2,
column_3
from dolphin.tank
where
column_1 = 'BAIT' and
column_2 = 'p_2'
end report_four;
2 回答
创建一个用于记录此过程调用的表,并在过程中添加
INSERT
语句以添加传递参数的行 . 记得在那之后COMMIT;
.将过程查询设置为:
让应用程序调用该过程 .
然后跑
然后将SQL_ID发现到调用中:
我希望记录表记录和SQL监视器报告为您提供线索 .
发布的代码执行select语句,但不会将任何内容传递给REF CURSOR . 如果这是一个真正的过程,当您尝试运行它时会发生错误 . 大概你已经编写了在StackOverflow上编辑发布源的资源,因此很难判断这种情况是否反映了你的实际代码,但它应该做这样的事情:
打开REF CURSOR会将参数与查询结果集相关联 .