您的位置:首页 > 数据库 > Oracle

ORACLE 执行EXECUTE IMMEDIATE没反应

2016-07-29 00:00 435 查看
在用oracle的时候,我写了个存储过程,如下:

create or replace procedure pro_table_create(tableName in varchar2,
flag out varchar2
)
is
begin
flag := '1';
execute immediate 'CREATE TABLE ' || tableName || '(id number,name varchar2(255))';
return;
EXCEPTION

WHEN   OTHERS   THEN
dbms_output.put_line('0');
flag := '0';
return;
end;


执行这个存储过程的时候,怎么都没效果,在SQL编辑框中拿出来,直接执行,执行成功

一开始想到是权限问题,可是我的权限是DBA,应该没什么问题,我就再次试试,试了很多次都是没效果

后来还是回到权限,试试用了授权创建表的权限。在pl/sql common输入以下

grant create table to czm;


用户授权,这个是系统权限,授权成功后再执行,发现居然执行成功。真是无语了

后来查看了一下DBA的系统权限,权限太多,就没发现这个权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: