Oracle

2019年從oracle 8讀取數據

  • September 23, 2019

我是一名實習生,被困在與我一樣古老的數據庫系統上。

問題:

我有一個 perl 腳本從執行 Oracle 8 (8.1.7) 的伺服器中提取數據並將數據放入 .csv 中。執行該腳本的伺服器正在退役,我現在需要將該腳本移植到一個新的伺服器上,該伺服器執行一個用於 oracle 11 (11.2.0.4.0) 的客戶端。問題是當我在新伺服器中執行該腳本時出現錯誤:

失敗:ORA-03134:不再支持與此伺服器版本的連接。(DBD 錯誤:OCISessionBegin)

所有伺服器都是linux伺服器

問題:

  • 有關 Oracle 8 的文件很少,但我假設錯誤正在發生,因為 Oracle 客戶端 11 不支持 oracle 8。假設我可以找到客戶端 8 的副本,是否可以在一台機器上傳入 2 個客戶端?
  • 我可以輕鬆地用 Java 重新編寫腳本。問題是如何找到與 Oracle 8 兼容的驅動程序,支持 oracle 8 的 OJDBC 最新版本是什麼?

我願意接受有關如何從 Oracle 8 讀取數據的其他建議。使用執行 Oracle 10 的伺服器作為中間伺服器不是一種選擇

將數據從一個 Oracle DB 傳輸到另一個的方法列表(我知道)

  • 數據庫連結
  • 數據泵 ( expdp/ impdp)
  • exp/imp
  • SQL Developer -> 遷移數據庫
  • 自定義腳本(例如 PERL)
  • CSV/XML 轉儲和導入
  • ETL 軟體(例如資訊學

其中最大的問題是“支持什麼?”。

*數據庫連結僅在“2 個主要版本”之間“受支持”。例如:10g 可以與 8i 通信,但 11g 不能。

數據泵應該支持更大的範圍。我認為expdp直到 10g 才可用。

經典導出/導入受限於支持的內容。幸運的是,Oracle Support 有一個關於“what works with what”的文件。請您的主管為您獲取Doc ID 132904.1的副本。您必須擁有有效的支持契約才能訪問本文件。

SQL Developer可能會幫助您。您需要導入可以與 8i 通信的 JDBC 驅動程序。您可能必須聯繫 Oracle 支持以獲取該驅動程序。(最新的是10g驅動)

如果您不能同時載入兩個不同的驅動程序,自定義腳本可能會出現問題。

CSV/XML概念需要仔細考慮。當心\n

ETL Software仍然需要適當的驅動程序。

記住

10g 是可以與 8i 對話的最新版本。11g 是可以與 9i 對話的最新版本。

Oracle Support 擁有“什麼與什麼一起使用”的所有知識。

更新 (2019-09-23)

有人想出瞭如何將 Oracle 8i JDBC 瘦驅動程序導入 18c 數據庫,以便針對 Oracle 7 執行查詢。

https://community.oracle.com/thread/4268386

引用自:https://dba.stackexchange.com/questions/237762