oracel 存储过程 创建表

用存储过程创建数据表:

创建时注意必须添加authid current_user ,如不不加此关键语句,存储过程将出现异常,这个语句相当于赋权限。

创建语句如下:

 
create or replace  procedure proc_create_table(
                       i_id varchar2
                    ) authid current_user
as

      v_tablename varchar2(30);--表名

      v_flag number;

      v_sql varchar(200);

begin

      v_flag:=0;

      v_tablename:=CONCAT('Test_', UPPER(i_id));

      v_sql:='select count(*) from user_TABLES where table_name='''||v_tablename||'''';
    

      execute immediate  v_sql into v_flag;

      if v_flag=0 then --如果没有这个表 则去创建
          execute immediate 
           'create table '||v_tablename ||
             '( DATETIME DATE, '||
             'id varchar2(32), '|| 
             'name varchar2(64) '|| 
            ' )';
      end if;

end;
 调用此存储过程:

begin
createmnl('mnl_14');
end;

你可能感兴趣的:(存储过程)