ORA-01403:找不到数据ORA-06512

时间:2019-12-09 20:13:45

标签: sql database oracle stored-procedures

这个问题以前曾在这里被问过,所以请原谅我再次询问;答案不能解决我的问题。

我正在使用一个报告界面,该界面将通过.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);

1 个答案:

答案 0 :(得分:0)

因此非常简单。在db阶段,您必须在以下查询中返回数据,而在dev中,以下查询没有数据:

SELECT GRANTED_ROLE
  --INTO L_GRANTED_ROLE
  FROM USER_ROLE_PRIVS
  WHERE GRANTED_ROLE LIKE 'XYZ_%';

执行上述查询,您将自己发现问题。

您需要更改proc的逻辑以处理此类情况。

干杯!