ITPub博客

首页 > 数据库 > Oracle > 存储过程执行EXECUTE IMMEDIATE没反应

存储过程执行EXECUTE IMMEDIATE没反应

原创 Oracle 作者:zhangsharp20 时间:2015-07-07 11:08:20 0 删除 编辑

点击(此处)折叠或打开

  1. create or replace procedure p_di_tab_syn
  2. is
  3. lvc_di_tab_sql varchar2(4000);
  4. cursor cur_di_tab is
  5. select \'create or replace synonym \'||table_name||\' for \'||owner||\'.\'||table_name synonym_sql
  6.     from all_tables
  7.       where owner=\'J1_DI\' and (table_name like \'DI%\' or table_name like \'DM_%\')
  8.       order by owner,table_name;
  9. begin
  10. --创建di 用户下对应表同义词
  11. for mycur_di_tab in cur_di_tab loop
  12. lvc_di_tab_sql:=mycur_di_tab.synonym_sql;
  13. execute immediate lvc_di_tab_sql;
  14.   end loop;
  15.   exception
  16.     when others then
  17.       dbms_output.put_line(\'创建同义词失败.\'||to_char(sysdate, \'yyyy-mm-dd hh24:mi:ss\')||\', sqlcode:\'||to_char(sqlcode)||sqlerrm);
  18. end;
执行后,同义词并未创建,但是单独将SQL拿出来可以执行,经查,需要对执行创建的用户进行显示赋权才行,即

点击(此处)折叠或打开

  1. grant create any synonym to j1_ldm;
赋权之后,执行完即创建了同义词

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29802484/viewspace-1725363/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: p_gettabdata
下一篇: p_getusertabdata
请登录后发表评论 登录
全部评论

注册时间:2014-08-12

  • 博文量
    382
  • 访问量
    801423