使用存储过程来创建表的错误。
我想使用存储过程来创建一个表,下面这段代码能执行成功
SQL> declare
2 tabstr varchar2(100):='create table djw(n Number)';
3 begin
4 execute immediate tabstr;
5* end;
SQL> /
PL/SQL 过程已成功完成。
SQL> desc djw
名称 是否为空? 类型
----------------------------------------- -------- -----------
N NUMBER
但是如果创建存储过程就得到下面的错误:
SQL> create or replace procedure createTable
2 as
3 begin
4 execute immediate 'create table djw(n number)';
5 end;
6 /
过程已创建。
SQL> exec createTable
BEGIN createTable; END;
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
ORA-06512: 在"SYSTEM.CREATETABLE", line 4
ORA-06512: 在line 1
怎样才能使得存储过程可以使用create table ..来创建表呢?