假設我有一個名爲db1的主數據庫。還有另一個名爲db2的數據庫。有時我需要從db2獲取數據。直接從db2獲取數據還是使用db1進行查看會更好嗎?從另一個數據庫讀取數據
回答
如果您從db2獲取數據,則應該在db2中爲每個查詢創建視圖。爲什麼?創建接口。如果有人會在db2中進行更改,他不知道從db1執行的查詢。您的查詢可能會停止工作。如果您在db2中爲查詢創建視圖,並從db1查詢視圖@ db2創建視圖,那麼任何在db2中更改結構的人都會在他的更改損壞您的查詢時看到無效視圖。
當然,我的意思是當你的查詢嵌入到包或視圖中時。如果您只是爲了分析目的而進行查詢,那麼直接進行查詢並不會有什麼區別,只要查看db1或db2上的視圖就可以了,因爲它適合您。但好的做法是設置接口,所以我建議在db2上創建數據集的視圖,這些數據集稍後將從db1中查詢。在db1一側創建附加視圖或同義詞以具有兩個側面接口也是有意義的。
太好了。感謝您回答我的問題。 – Kristjan
您首先需要設置一個connectng到DB2的驅動程序,一個用於連接Oracle的TNS連接條目和一個Oracle中的數據庫鏈接指向連接。
重要的是,您儘可能嘗試隔離一個數據庫與另一個數據庫的更改。
我已經完成了不同的方式,但是這對我有效;
- 對於在DB2中查詢的每個表,只需從該表創建一個DB2列表視圖即可。
- 在Oracle中創建一個查詢DB2_VIEW @ DB2_database的視圖。雖然不是絕對必要的,但只需查詢您想要的列 - 它的良好做法。
- 通過它創建視圖和查詢的同義詞。如果數據來源發生變化並且視圖被另一個視圖替換,則可以將同義詞切換爲指向新視圖而不是更改代碼。
摘要: 除非我誤解你似乎會問我應該直接查詢表在DB2或者我應該通過什麼看法?我建議通過視圖將你從兩端的變化中隔離開來,以便在某種程度上使用視圖。
太好了,謝謝!回答了我所有的問題。 – Kristjan
- 1. 從一個數據塊讀取BLOB到另一個數據庫
- 2. 開發Lotus Notes數據庫讀取另一個數據庫
- 3. 從一個數據庫讀取並寫入另一個Rails 2.3
- 4. 從一個數據庫讀取並寫入另一個php/laravel
- 5. 從另一個數據庫
- 6. C# - DataGridView - 從另一個數據庫表中讀取一列嗎?
- 7. JS SQLITE,讀取一個數據庫並寫入另一個數據庫
- 8. 數據遷移從一個數據庫到另一個數據
- 9. 從一個數據庫表插入另一個數據庫
- 10. MySql - 從一個數據庫更新到另一個數據庫
- 11. 從數據庫中讀取數據,並在一個txt文件
- 12. SQLite從數據庫讀取數據
- 13. MongoDB從數據庫中讀取數據
- 14. php從sql數據庫讀取數據
- 15. 從遠程數據庫讀取數據
- 16. ASP.NET從數據庫讀取數據
- 17. tensorflow從數據庫讀取數據
- 18. 從數據庫中讀取MVC數據
- 19. MSSQL注入從另一個數據庫中提取列數據
- 20. 標籤雲(從另一個數據庫獲取數據)
- 21. 表單不從另一個數據庫中拾取數據
- 22. 將一列數據從一個數據庫複製到另一個數據庫
- 23. Ajax從數據庫讀取
- 24. PDO從數據庫讀取
- 25. 將數據從一個數據庫遷移到另一個數據庫
- 26. 將數據從一個數據庫插入到另一個數據庫中
- 27. 將數據從一個數據庫傳輸到另一個數據庫
- 28. 將數據從一個數據庫導入另一個數據庫條件爲
- 29. 將數據從一個數據庫表複製到另一個數據庫表?
- 30. 將數據從一個數據庫保存到另一個數據庫
很多因素需要在這裏考慮。數據庫之間有快速連接嗎?它有很多數據嗎?兩個數據庫都可能移動嗎? 「使用db1查看」是什麼意思,這仍然需要訪問db2? – JohnHC
感謝您的回答! 我對數據庫並不是很瞭解,但有2種方法可以實現這個功能。首先是我在db1中查詢時引用了db2。 SELECT * FROM db2.table1 還是我第一次創建視圖(CREATE VIEW v_db1 SELECT * FROM db2.table1) ,然後當我需要在DB2中那個表我只是SELECT * FROM v_db1 我想知道何時使用第一路或第二路。那兩者有什麼區別? 我希望我說得更清楚我在想什麼 – Kristjan