0
我有一个具有执行立即语句的过程。在那个执行即时语句中调用一个有两个输出参数的过程。我在尝试获取那些在调用execute immediate语句的过程中使用的参数时遇到了问题。从调用过程的立即执行语句中使用out参数
execute_stmt := 'DECLARE pi_error_log_rec error_log%ROWTYPE; p_plan_id NUMBER; begin SCHEMA.PACKAGE_NAME.' ||
PROCEDURE || '(' ||
p_audit_log_id || ', ' ||
V_PARAMETER1 || ', ' || '''' ||
V_PARAMETER2 || '''' ||
', p_plan_id, pi_error_log_rec); end;';
execute immediate execute_stmt;
if(pi_error_log_rec.error_text IS NOT NULL) THEN
--do stuff;
ELSE
--do stuff;
的输出参数是p_plan_id
和pi_error_log_rec
,剩余的是IN参数。所以我需要获得这两个输出用于调用此立即执行的过程中。但它没有在变量中设置输出。我错过了一个步骤,还是应该在使用输出参数时使用不同的方法?
谢谢。这解决了我的问题。但我认为这是关于记录类型的。我得到一个错误,说它必须使用SQL类型。 – Alkey29
查看我关于记录类型的更新答案 –