ORA-02085和ORA-02069的错误问题

学籍数据库前端php操作发生问题,错误如下:
OCIStmtExecute: ORA-02069: global_names parameter must be set to TRUE for this operation in….

检查以后发现操作的SQL语句如下:
insert into TMP_EALLYEAR_GZ@oracle1 (ID ,YEAR_NAME) VALUES (XXBJ_ID.nextval,2333)

通过dblink操作远程数据库中的语句中包含序列,先按照错误提示,发现本地oracle上global_name状态为false
sql> show paramater global_name;

google了一下,发现dblink的操作中如果包含序列必须将global_name设置为true;
sql> alter system set global_names=true;

修改之后前端PHP仍然报错,如下:
ORA-02085: database link ORACLE1.US.ORACLE.COM connects to ORACLE1

猜想可能是本地和远程的oracle中global_name不一致造成,查询两台oracle:
sql> select * from global_name;

果然不一致,准备都修改成一致的oracle1和oracle3:
sql> alter database rename global_name to oracle3;
修改之后看看改了没有:
sql> select * from global_name;
头晕,发现仍然是ORACLE3.US.ORACLE.COM,没变,没有办法,只好强制了。

切换sysdba用户登陆oracle3:
sql> update props$ set value$='oracle3' where name='GLOBAL_DB_NAME';

重启数据库之后没遇到什么问题,再查看global_name,已经变为oracle3,然后删除以前的dblink重新建立之后,前端php脚本终于正常了。

搞了两个小时,头昏眼花肚子咕咕叫,赶紧关灯走人填肚子去。。。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇