暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在模式中重新编译同义词的脚本

askTom 2017-02-21
352

问题描述



我已经写了下面的脚本来重新编译所有模式中的同义词,但是我得到了无效的字符错误。您能否检查脚本是否有任何错误:

假脱机 “c: 同义词.Txt”

开始

对于i在 (从所有对象中选择对象名称,所有者
其中所有者喜欢 '& 1.%'
和object_type = '同义词'
和状态 = '无效')
循环
开始
立即执行 'alter同义词 '| | i.owner | |'。'| | i.object_name | |' 编译; ';
当其他人则例外
dbms_output.put_line ('无法重新编译' | | i.owner | | '。' | | i.object_name | | '-ERROR-' | | SQLERRM);
结束;
结束循环;
结束;
/

线轴关闭。

我正在通过传递变量值来调用脚本。

错误如下:

无法重新编译BASE_CORE.PARTICIPANT_AWARD-错误-ORA-00911: i
无效字符


专家解答

1) 立即执行不需要半列-那是sqlplus的事情

2) 你应该照顾混合的情况


尝试将您的DDL设置为

立即执行 'alter同义词 “'| | i.owner | |'”。'| | i.object_name | |' "compile';

看看这是怎么回事。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论