Oracle ORA-02069: 此操作的 global_names 参数必须设置为 TRUE

zh22ou 2014-06-03 11:02:31
跪求大神,帮忙解决下这个问题.
从公司的数据将数据通过dblink传到另外一个的数据库中,可是在执行存储过程时,提示这个错误.该怎么解决?
dblink是通的.
...全文
6243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2014-06-04
  • 打赏
  • 举报
回复
select column from A 这里的字段是否包含了函数或序列?
zh22ou 2014-06-04
  • 打赏
  • 举报
回复
引用 楼主 zh22ou 的回复:
跪求大神,帮忙解决下这个问题. 从公司的数据将数据通过dblink传到另外一个的数据库中,可是在执行存储过程时,提示这个错误.该怎么解决? dblink是通的.
insert into B@dblink select column from A
小灰狼W 2014-06-04
  • 打赏
  • 举报
回复
对的,或者将函数建在远端来调用好像也可以 转换过程复杂的话,使用中间表的做法其实更好
zh22ou 2014-06-04
  • 打赏
  • 举报
回复
引用 5 楼 wildwave 的回复:
因为函数属于本地的,在这个insert过程中,主要是在dblink指向的远端完成,此时需要从远端返回本地来引用函数进行处理 这种情况下,需要将global_names设为true,然后在远端创建一个指向本地的dblink,并且两个dblink名称要和对方数据库的global name一致 使用中间表也是一种方法,可以绕过上面说的问题
94说,如果想直接使用函数,必须两边都创建dblink以及global_names设置为true才可以执行? 不过使用中间表也好,因为数据需要很多处理,直接在里面处理可能还会造成错误和效率。 哈,谢谢你的解答
小灰狼W 2014-06-04
  • 打赏
  • 举报
回复
因为函数属于本地的,在这个insert过程中,主要是在dblink指向的远端完成,此时需要从远端返回本地来引用函数进行处理 这种情况下,需要将global_names设为true,然后在远端创建一个指向本地的dblink,并且两个dblink名称要和对方数据库的global name一致 使用中间表也是一种方法,可以绕过上面说的问题
zh22ou 2014-06-04
  • 打赏
  • 举报
回复
引用 3 楼 wildwave 的回复:
select column from A 这里的字段是否包含了函数或序列?
确实是使用了函数,因为数据需要做处理。 现在我是先把数据处理好,存放到表中.然后再用存储过程select这个新的表,就不报这个错了 为啥在select的时候,不能直接处理? 不过问题已解决了,谢谢你。
小灰狼W 2014-06-03
  • 打赏
  • 举报
回复
这个语句大概是什么样的?

17,141

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧