现在我有一个参数表,里面是日期格式规定如"MM/dd/yyyy"
而另一存储过程要每次读这个参数表的话系统开支太大,想直接在存储过程写死这个值,想写触发器,当参数表值改变时修改并编译这个存储过程.最简单的问题就是"如何存储过程创建存储过程"急,在线等,各位帮下忙.

解决方案 »

  1.   

    user_source这个“表”改完了
    dbms_ddl.alter_compile()
      

  2.   

    例子:
    create or replace procedure p_test ( v_name varchar2 )
    as
    v_sql varchar2(2000);
    begin
      v_sql:='create or replace procedure '||v_name||' (v_date date) '||
          ' is '||
          ' v_count number(5); '||
          ' begin '||
          '   select count(*) into v_count from user_tables; '||
          '   dbms_output.put_line(to_char(v_count)); '||
          ' end; ';
      execute immediate v_sql;
    end;
    /