这个问题以前曾在这里被问过,所以请原谅我再次询问;答案不能解决我的问题。
我正在使用一个报告界面,该界面将通过.NET应用程序从Oracle数据库运行存储过程。我们有2个oracle数据库实例: Dev 和 Stage 。我可以从SQL Developer应用程序连接到两个Oracle数据库,并成功运行存储过程。
当我尝试从调用 DEV 数据库的Web UI运行报告时,存在问题。它中断并返回Oracle错误,告诉我没有记录,但是当我使用相同的Dev存储过程运行相同的报表,并且数据库指向 STAGE 时,它将返回没有问题的数据。>
BEGIN
-- <logic>Get current role</logic>
SELECT GRANTED_ROLE
INTO L_GRANTED_ROLE
FROM USER_ROLE_PRIVS
WHERE GRANTED_ROLE LIKE 'XYZ_%';
-- <logic>Retrieve the employee id</logic>
L_EMPLOYEE_ID := XYZ.UTILS.GET_EMPLOYEE_ID;
-- <logic>Load course profile</logic>
XYZ.UTILS.LOAD_EMP_TEACHING_PROFILE (P_COURSE_ID, NULL);
答案 0 :(得分:0)
因此非常简单。在db阶段,您必须在以下查询中返回数据,而在dev中,以下查询没有数据:
SELECT GRANTED_ROLE
--INTO L_GRANTED_ROLE
FROM USER_ROLE_PRIVS
WHERE GRANTED_ROLE LIKE 'XYZ_%';
执行上述查询,您将自己发现问题。
您需要更改proc的逻辑以处理此类情况。
干杯!