將兩個遠端 oracle 數據庫作為模式相互連接
這個問題是關於 Oracle 數據庫的。
我有兩個遠端數據庫 DB_1 和 DB_2,每個數據庫上有兩個架構:數據庫 DB_1 上的架構 DB_1 和架構 DB_2,數據庫 DB_2 上的架構 DB_1 和架構 DB_2。我想從數據庫 DB_1 Schema DB_1 到達數據庫 DB_2 Schema DB_2。例如:當我從模式 DB_1 在 DB_1 中嘗試此查詢時:
SELECT * FROM DB_2.example_table
我收到一個錯誤,因為 DB_1 數據庫的 DB_2 Schema 中沒有表“example_table”。但是,當我在 DB_2 Schema DB_2 上嘗試相同的查詢時,我得到了正確的結果(一些數據)。
所以,我需要以某種方式調整我的數據庫,以便我可以
SELECT * FROM DB_2.example_TABLE
從 DB_1 數據庫。但是,還有一個問題,我沒有權限
CREATE LINK
。但是,當我查詢SELECT * FROM ALL_LINKS;
我的生產數據庫 DB_1 模式 DB_1 時 - 根本沒有連結。所以,我需要弄清楚我的生產數據庫是通過哪種方式連結的(不幸的是我的同事也不知道)。在我的生產數據庫 DB_1 模式 DB_1 上,我可以使用以下查詢獲取數據:
SELECT * FROM DB_2.example_table
如果我嘗試在 DB_2 生產數據庫 DB_2 模式上查詢相同的數據,我得到的數據是相同的。
但是在 DB1/DB2 生產數據庫上根本沒有公共\私有連結。還有另一種方法可以在我的數據庫之間創建“連接”嗎?(我
SELECT * FROM ALL_LINKS
從 DB_1 模式 DB_1 查詢,這是否可能,所以如果我嘗試對 DB_1 模式 DB_2 進行查詢,我可以獲取一些其他數據嗎?)感謝期待!
幾個問題,沒有特別的順序。
您的 SELECT 語法錯誤。要從另一個數據庫中選擇一個表,語法是
select some_columns from remote_table@remote_db;
注意“@remote_db”。這裡的“remote_db”指的是本地數據庫的 tnsnames.ora 文件中的一個條目,該文件又會解析為有問題的遠端數據庫。 更正:這裡的“remote_db”是數據庫連結的名稱。
其次,您說您無權創建數據庫連結。好吧,有人將不得不創造一個。這是一個數據庫查詢另一個數據庫的機制。時期。句點。
第三,您說查詢 ALL_LINKS 時沒有找到任何數據庫連結。視圖的名稱是 ALL_DB_LINKS。這僅顯示目前使用者有權訪問的連結。如果您想查看數據庫中的所有連結,請以有權查詢該視圖的使用者身份查詢 DBA_DB_LINKS。另外,我在您的問題描述中看不到任何內容,這會讓我懷疑確實存在任何數據庫連結。