从存储在clob列中的pl / sql块设置out参数值

时间:2014-11-10 22:00:00

标签: sql oracle stored-procedures plsql oracle11g

我有下表和相关栏目。

TABLEA
SQL_SCRIPT    CLOB

这是一个在clob中执行pl / sql块的过程..

Create procedure (p_exit_code IN OUT NUMBER)
AS
V_sql_val   sql_script%TYPE;
…
BEGIN
Select sql_script into v_sql_val from tablea;

EXECUTE IMMEDIATE sql_script;

END;

在SQL_SCRIPT中,我试图在异常处理程序中执行以下操作:

EXCEPTION
  WHEN EXCP_STOP_PROCESS THEN
    p_exit_code := 1;
END;

我需要在clob脚本中设置过程中p_exit_code参数的值。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要在sql_script内设置变量的值并将其返回给调用过程。这可以使用绑定变量来实现。一个非常简单的测试用例如下:

declare 

  -- ':return_code' is the bind variable
  sql_script varchar2(1000) := 'begin :return_code := 1; end;';
  vn_result number;

begin

  execute immediate sql_script using out vn_result;
  dbms_output.put_line(vn_result);

end;