暂无图片
换服务器 之前oracle还原的有问题,有些视图和存储过程还有表的索性之类的有错误,现在找到了这些视图名称,怎么批量把sql拿来重新编译下?
我来答
分享
不是小熊
2022-02-07
换服务器 之前oracle还原的有问题,有些视图和存储过程还有表的索性之类的有错误,现在找到了这些视图名称,怎么批量把sql拿来重新编译下?

换服务器 之前oracle还原的有问题,有些视图和存储过程还有表的索性之类的有错误,现在找到了这些视图名称,怎么批量把sql拿来重新编译下?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
DarkAthena

如果你数据库里这些对象当前的sql都是正确的,直接批量编译无效对象就好了

@$ORACLE_HOME/rdbms/admin/utlrp.sql
复制

或者执行

exec dbms_utility.compile_schema( '用户名' );
复制

另外,在plsqldeveloper或者toad等工具里,都支持查看无效对象列表以及批量编译无效对象
image.png

或者,可以写一个plsql块,将名称作为游标循环,使用dbms_metadata.get_ddl来获取每个指定对象的ddl语句,并使用execute immediate来执行

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
不是小熊
题主
2022-02-07
谢谢
回答交流
Markdown


请输入正文
提交
相关推荐
xshell登陆显示异常
回答 4
尽管不清楚lianR的方案是否解决了问题,但至少从他的回答中学到了sqlprompt这个招数
oracle授权给一个只读账号,只能读A账号下的所有表,有几百张表,怎么操作?
回答 1
已采纳
创建一个角色权限createroleselectalla;批量查出A的表进行拼接select‘grantselectona.’||tablename||’toselectalla;’fromdbata
修改分区表的表空间
回答 2
看你需求,是否需要迁移这些对象,如果需要则需要修改,如果不需要迁移,则留在旧的表空间就可以
Oracle 19C RAC 安装报错:VIP 的subnet 配置有问题
回答 2
已采纳
可能hosts配置里带有特殊符号了,检查一下文件,或者用vi重新写一个
目前oracle 19c 数据库怎么样,11204建议升级吗? 我们一直用的oracle 11.2.0.4现在要升级,升级到那个版本最好,要兼容rac和dg配置
回答 2
已采纳
建议19.10,19.11问题较多
Oracle19.17的,为什么建3个pdb以后就无法再建造,修改max_pdbs参数也没有用?
回答 3
https://blogs.oracle.com/database/post/oracledatabase19cupto3pdbspercdbwithoutlicensingmultitenant
Oracle 慢SQL可能会使ibtmp1文件爆增吗?
回答 1
已采纳
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,tem
Oracle 11.2.0.4DG,备库强制开启为主库后,原来的主库用什么方法可以最快恢复成备库?
回答 3
已采纳
新主库备份个standby控制文件到旧主库进行恢复
sysctl -w vm.dirty_ratio ,修改后,怎么不生效?
回答 2
你看一下你的/etc/sysctl.conf里面现在是否已经添加有这么一行,值是多少?如果没有请添加如下:vm.dirtyratio10然后执行sysctlp生效
Oracle创建索引
回答 6
好的,感谢感谢,收藏了
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~