SQL> create procedure cccccc
2 as
3 s_q varchar2(100);
4 begin
5 s_q := 'create table cc(id number)';
6 execute immediate s_q;
7 end;
8 /
过程已创建。
SQL> exec cccccc;
BEGIN cccccc; END;
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
ORA-06512: 在"SYSTEM.CCCCCC", line 6
ORA-06512: 在line 1
SQL> conn /as sysdba
已连接。
SQL> grant create table to system;
授权成功。
SQL> conn system/love2008
已连接。
SQL> exec cccccc;
PL/SQL 过程已成功完成。
system应该有create table 的权限阿
sys@HASL>alter user system identified by manager account unlock;
用户已更改。
sys@HASL>conn system/manager@haslxdb
已连接。
sys@HASL>create or replace procedure aaa
2 is
3 ssql varchar2(1000);
4 begin
5 ssql:='create table asdf(id char(10))';
6 execute immediate ssql;
7 end aaa;
8 /
过程已创建。
sys@HASL>exec aaa;
PL/SQL 过程已成功完成。
sys@HASL>show user
USER 为"SYSTEM"
sys@HASL>select *from asdf;
未选定行