作者chings22 (chings22)
看板Database
标题[讨论] Oracle DB Link 会ora-00904
时间Wed May 15 03:37:17 2019
标题太长,再写一次
Oracle DB Link 会ora-00904 invalid identifier
有2个DB :DB1, DB2
DB1-->DB2 透过 DB_LINK连到DB2的owner2
在DB2上
create synonym owner2.table_a for owner1.table_a;
DB2上的owner2.table_a是synonym
DB2上的owner1.table_a是table
在DB1单独执行会过
select a1,a2
from table_a@db_link
where a1=xxx;
若改成pl/sql
==>
begin
select a1,a2
from table_a@db_link
where a1=xxx;
end;
则有时会出现PL/SQL: ORA-00904: a1: invalid identifier
会发生这问题的时间大约都是,memory不足了
目前知道的解法是flush shared pool
请问
1.有其它解法吗?
2.现在被迫每天清晨设schedule flush share pool, 这样好吗?
PS:台湾有oracle论坛吗?
我知道有ITPub,但那是简体的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.226.156.194
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1557862639.A.09D.html
1F:推 aweful: 定义dblink的时候有没有加public﹖ 05/15 16:34
有,这程式run 10多年了,最近突然有问题
单独在client tool 执行ok,有begin end一阵子後就不行了
2F:推 bij831: 试一下加入别名select s.a1 .... from table_a@db_link s 05/15 18:54
3F:→ bij831: 2.没有什问题,只是增加硬解和重新cache而已。ITPUB个人认 05/15 18:55
4F:→ bij831: 为是最好的中文网站了,不然就去oracle官方网站问了。要发 05/15 18:56
5F:→ bij831: 问题就用word转成简体的就行了,只是要注册现有一些麻烦 05/15 18:57
前面加owner也不行,
IT Pub很多年前有注册过,後来公司有封锁该网址,
而我也多年未登入,已经不会想进去了
转成简体,有些用语若是没转好,被看出是台湾人,反而麻烦
大概知道问题了,还没确定是否如此.
不知有没有人遇过?
※ 编辑: chings22 (36.226.156.194), 05/15/2019 22:33:34
6F:推 bij831: 是加别名,不是owner。另外itpub没那麽政治,我用了很多年 05/18 10:34
7F:→ bij831: 了 05/18 10:34
问题是8i跟10g的synonym在一起做 sql join,
这2个synonym都是定义到到8i的同一个table
在MOS可看到10g的DB有类似的synonym bug
把程式改回只有一个synonym,也是一样error,
最後还要搭配restart DB一次才好
我上面写的pl/sql 是在ora-00904问题发生後,只select一个table也会错
※ 编辑: chings22 (118.166.210.185), 05/30/2019 23:01:22