首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

创建表 ora-01031 权限不足,不知道如何搞

2012-02-07 
创建表 ora-01031 权限不足,不知道怎么搞,我的程序如下:createorreplaceprocedureaaaisssqlvarchar2(1000)

创建表 ora-01031 权限不足,不知道怎么搞,
我的程序如下:

create   or   replace   procedure   aaa
is
              ssql   varchar2(1000);
begin
              ssql:= 'create   table   asdf   as   select   *   from   gyf_c ';
              execute   immediate   ssql;
end   aaa;

哪位高手帮忙解决下??

[解决办法]
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;

未选定行

热点排行