【发布时间】:2021-05-06 01:55:27
【问题描述】:
我正在尝试将要调用的过程的名称传递给循环,因为我需要连续调用 3 个类似的过程。
让我们给他们打电话:
- Proc_A
- Proc_B
- Proc_C
它们各有 1 个输入变量和 2 个输出变量。
有什么想法可以改变以使其正常工作吗?
FOR l_counter in 1..3
LOOP
SELECT PROC_NAME into V_PROC FROM PROC_LIST WHERE PROC_ID = l_counter;
EXECUTE IMMEDIATE 'PROC_DB.' || V_PROC || '(1,V_STEP_ERROR_CODE,V_STEP_MSG)';
COMMIT;
END LOOP;
第 5 行当前失败。 (立即执行) with: "invalid SQL statement"
【问题讨论】:
-
什么是“不工作”?
-
在执行立即部分尝试运行过程失败。
-
看这里如何调用一个过程。你需要一个匿名块和一个 using 子句:stackoverflow.com/questions/30977692/….
标签: sql oracle plsql dynamic-sql