高分相送。如何在pro*C中动态执行存储过程?
及存储过程名作为一参数传入,程序中动态的
执行该存储过程。
谢谢!

解决方案 »

  1.   

    在oracle数据库中运行以下过程,在pro*C中
    调用此过程,动态存储过程作为v_string参数传入CREATE OR REPLACE  PROCEDURE P_EXEC_PROCEDURE(
      v_string    in  varchar2,
      v_return    out number,
      v_error_msg out varchar2
    )
    is
       cursor_id   integer;
       v_rows      integer;
    begin
       v_return := 0;
       cursor_id := DBMS_SQL.OPEN_CURSOR;
       DBMS_SQL.PARSE( cursor_id, v_string, dbms_sql.v7);
       v_rows := DBMS_SQL.EXECUTE(cursor_id);
       DBMS_SQL.CLOSE_CURSOR(cursor_id);
    exception when others then
      v_return    := SQLCODE;
      v_error_msg := substr(SQLERRM,1,100);
    end;