加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ORACLE 执行EXECUTE IMMEDIATE没反应

发布时间:2020-12-12 16:12:20 所属栏目:百科 来源:网络整理
导读:在用oracle的时候,我写了个存储过程,如下: create or replace procedure pro_table_create(tableName in varchar2,flag out varchar2 ) isbegin flag := '1'; execute immediate 'CREATE TABLE ' || tableName || '(id number,name varchar2(255))'; retu

在用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的系统权限,权限太多,就没发现这个权限

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读