作者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/m.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