1、 当用程序连接或者用plsql查询同义词时,如果出现ora-01775:同义词的循环链这样的问题。一般是因为存在同义词,但同义词没有相应的对象。
创新互联联系热线:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联网页制作领域十多年,包括服务器托管等多个行业拥有丰富的网站运维经验,选择创新互联,为网站锦上添花!
2、 先查有没有循环的同义词。select * from dba_synonymswhere table_owner='TEST'and synonym_name<>table_name;没有记录。
3、 再查同义词没有对象的数据库对象select * from dba_synonymswhere table_owner='TEST'andsynonym_name in(select a.synonym_name from dba_synonyms a where a.table_owner='TEST'minusselect object_name from user_objects)4、 把查询出来的结果进行查询表select * from DRILL_PRESON如果该同义词没有相应的对象,则会包ora-01775的错误5、 把这个同义词删除
使用loop循环,比如:
for item in (select a,b,c from table_a where 条件) loop
insert into table_b(a,b,c) values (item.a,item.b,item.c);
end loop;
也可以使用索引表循环,以上只是一个简单的例子,需要根据你的具体情况选择循环方式
1、嵌套循环链接(USE_NL)
主要消耗的相关资源:CPU,磁盘I/O
特点:在网上看到很多关于这方面的帖子,说小表作为驱动表,其实这种说话不完全正确,其实带条件的大表返回较少行的结果集也可以作为驱动表(外部表)。此表连接在当有高选择性索引或进行限制性搜索时候效率较高,可以快速返回第一次的搜索结果。
缺点:当索引丢失或查询条件限制不够时,效率很低。
2、排序合并连接(USE_MERGE)
主要消耗的相关资源:内存,临时表空间
特点:在排序合并连接中,ORACLE分别将第一个源表、第二个源表按他们各自要连接的列排序,然后将两个已经排序的源表合并。由于没有索引,排序合并连接在合并两表钱将强制对他们进行排序,两表都需要进行全表扫描,所以表名在FROM自居中出现的次序并不重要。当缺乏索引或搜索条件模糊时,该类型的连接比嵌套循环连接更加有效。
缺点:所有表都需要排序,它为最优化的吞吐量而设计,并且在结果没有全部找到之前不返回数据。
3、散列连接(USE_HASH)
主要消耗的相关资源:内存,临时表空间
到此,以上就是小编对于oracle循环语句怎么写的问题就介绍到这了,希望这3点解答对大家有用。
本文题目:oracle数据库中循环同义词,怎么处理?(oracle循环语句如何写)
标题路径:http://www.mswzjz.cn/qtweb/news44/59894.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能