我创建了许多过程来从远程数据库中提取数据并将其存储在我的本地数据库表中。单独运行时,程序运行成功。但现在我想创建基于条件调用的动态过程。我已经创建了相同的小程序,但在运行此过程时出现错误:
ORA-06512:
01403. 00000 - "no data found"
我将程序称为EXT_EXTRACTION(1000161);
我认为问题是我没有正确地调用CASE WHEN
中的程序,也不知道如何正确调用它。
这是我的程序;
PROCEDURE "EXT_EXTRACTION"(
IN_KPI_DEF_ID IN NUMBER DEFAULT 0
) AS
ENTITY_CLASS_NAME Number := 0;
IN_EVENT_ID NUMBER;
BEGIN
Select EVENT_ID
INTO IN_EVENT_ID
from RATOR_MONITORING_CONFIGURATION.KPI_DEFINITION
WHERE KPI_DEF_ID = IN_KPI_DEF_ID;
CASE
WHEN IN_EVENT_ID = 10049
THEN EXT_10049_ACTIVATE_OPTION;
END CASE;
COMMIT;
END EXT_EXTRACTION;
答案 0 :(得分:1)
尝试在no_data_found 时使用异常处理程序中的select并查看结果。可能是来自另一个用户的这个proc工作,它没有选择的权限,或者选择的对象是一个视图?也许你应该创建像 authid current_user 这样的程序?