我要设定几个参数然后传给过程用来建立一个表,比如将表名,表中的列名,列属性等,传进去,但是不会做请问谁可以告诉我?

解决方案 »

  1.   

    使用动态sql
    create or replace cre_table(tab_name,col_name,……)
    {
     ……
     execute immediate 'create table ……' ;
     ……
    }
      

  2.   

    create or replace procedure cre_tbl(p_stmt varchar2)
    as
    begin
      execute immediate p_stmt;
      exception
        when others then
        null;
    end;
    execute cre_tbl('create table aaa(a number,b varchar2(10))');
      

  3.   

    create procedure pro(p_table in varchar2,p_col in varchar2,p_type in varchar2)
    as
    str varchar2(100);
    begin
    str:='create table '||p_table||' ('||p_col||' '||p_type||')';
    execute immediate str;
    end;
    /