浪潮软件oracle 816导入数据时,报不到db link,存储过程建立报错

浪潮软件oracle 816导入数据时,报不到db link,存储过程建立报错

操作系统: WIN 2000 SER 数 据 库: Ora 8i
软件版本: 软件模块:
问题描述:
   oracle database link 完成一个oracle database 向另一个oracle database访问。在这一点上,ms sql server根本就不用什么 database link ,访问时直接写服务器的机器名就行了。
另注:oracle database 访问非 oracle database 的技术,称之为 oracle transparent gateway  ( oracle  透明网关)技术,此技术和ms sql server 的 链接服务器技术类似。
产生原因: 
解决方法:
   最近帮着一个客户新装了一个oracle 816,然后进行了oracle 816的exp出来的数据的恢复,在恢复的结束阶段,也就是导入同义词,触发器,存储过程阶段,有个报错,大体意思就是因为找不到db link,存储过程建立报错,仔细分析了报错信息,再加上询问客户方的业务人员,最后明白了该存储过程是通过db link 从sunway 的业务系统中取数。导入存储过程(包括导入同义词,触发器,视图)时,imp要进行编译,编译通过后,才不会报错。此问题,就是出在编译时找不到db link,而报错。最后无奈之下,又重新导入了一次,实际上,只重新导入那个出错的存储过程即可。

最后的总结:
建立db link时,是用的如下的语法:
create  public database link SUNWAY_CG CONNECT TO gqcb identified by gqcb using ‘sunway_cg’

–小类注:using ‘sunway_cg’ 中的sunway_cg为在此台oracle816服务器上事先配置好的指向另外一个oracle数据库的net 服务名。
–在006帐套中,使用了这个dblink,到其他的业务系统中取数。
用此语法建立完毕后,测试此database link,发现处于“非活动状态”,一开始百思不得其解,后来经询问同事,才发现,“非活动状态”与init.ora的一个参数“global_name”有关系,global_name=false 才行。

另注:
oracle 816,默认安装完毕,global_name=true
oracle 92,默认安装完毕,global_name=false
oracle 10,默认安装完毕,global_name=false

原创文章,转载请注明: 转载自浪潮888博客

本文链接地址: 浪潮软件oracle 816导入数据时,报不到db link,存储过程建立报错

文章的脚注信息由WordPress的wp-posturl插件自动生成



This entry was posted in 浪潮文档. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>