這是一個非常愚蠢的,但我需要幫助。如何正確製作公共同義詞
我有一張由mydbowner擁有的表格。它被命名爲mydbowner.mytable。我嘗試通過發出以下命令來創建公共同義詞:
創建或替換公用同義詞mytable for mydbowner.mytable;
當我這樣做,我查詢我得到的表:
ORA-01775:同義詞
如何使這個同義詞的循環鏈,而不必問題。
這是一個非常愚蠢的,但我需要幫助。如何正確製作公共同義詞
我有一張由mydbowner擁有的表格。它被命名爲mydbowner.mytable。我嘗試通過發出以下命令來創建公共同義詞:
創建或替換公用同義詞mytable for mydbowner.mytable;
當我這樣做,我查詢我得到的表:
ORA-01775:同義詞
如何使這個同義詞的循環鏈,而不必問題。
我覺得賈斯汀走的是正確的道路。我認爲它實際上意味着mydbowner.mytable不存在。
下面是一個例子:
SQL> conn mbobak
Enter password:
Connected.
SQL> drop table mytable;
drop table mytable
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> create public synonym mytable for mbobak.mytable;
Synonym created.
SQL> select * from mytable;
select * from mytable
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
我覺得發生了什麼事是,甲骨文試圖解決MYTABLE,存在mbobak模式沒有mytable的,所以,在公共查找它,找到它,並看到它指向mbobak.mytable。但是,mbobak.mytable不存在,所以它在PUBLIC中查找mytable,並且有循環。
而事實上,如果創建MYTABLE,錯誤消失:
SQL> create table mytable as select * from dual;
Table created.
SQL> select * from mytable;
D
-
X
1 row selected.
SQL> drop table mytable;
Table dropped.
SQL> select * from mytable;
select * from mytable
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
是的,我知道並沒有真正完全意義,因爲,一旦公共同義詞決心mbobak.mytable,並沒有找到,這在我看來,它應該返回一個錯誤ORA-942「表或視圖不存在」,這使我更有意義。
但是,這似乎是如何工作的。
QED
希望有所幫助。
你所得到的錯誤意味着mydbowner.mytable
不是,實際上是一個表。什麼
SELECT object_type
FROM all_objects
WHERE owner = 'MYDBOWNER'
AND object_name = 'MYTABLE'
回報?
這兩個答案是正確的。我做了一些排字錯誤,而同義詞沒有提及。 – Joe