簡體   English   中英

Perl 腳本無法連接到 Oracle 數據庫

[英]Perl script not able to connect to Oracle Database

我在執行 Perl 腳本時收到以下錯誤消息。 以下是我在編譯腳本時收到的錯誤消息。

install_driver(Oracle) 失敗:無法加載模塊 DBD::Oracle: ld 的“/xxx/usr/local/lib/perl5/site_perl/5.10.0/sun4-solaris/auto/DBD/Oracle/Oracle.so” .so.1:perl:致命:libclntsh.so.10.1:打開失敗:在/xxx/usr/local/lib/perl5/5.10.0/sun4-solaris/DynaLoader.pm第203行沒有這樣的文件或目錄。at (eval 99) line 3 Compilation failed in require at (eval 99) line 3. 也許在 /xxx/xxxx/xxxx/xxxx/XXXX/CommonOracle.pm line 71 預期的地方沒有安裝所需的共享庫或 dll

最近在我的系統中Oracle已經從10.2升級到11.0。 請幫我解決問題? 我不是我系統的管理員。 我需要更改 LD_LIBRARRY_PATH 嗎? 我正在使用 Solaris 操作系統。

你好像忘了問一個問題。 讓我們假設它是“我該如何解決這個問題?”

與數據庫通信需要在您的系統上安裝許多東西。

  • 您需要您正在使用的數據庫系統的客戶端庫。 這將是可能位於 /usr/lib 下某處的共享對象 (.so) 文件。

  • 您將需要用於數據庫引擎的 Perl 數據庫驅動程序(在您的情況下,這是 DBD::Oracle)。 如果您通過從頭開始構建來安裝它(如cpancpanm命令所做的那樣),那么您幾乎肯定還需要上述客戶端庫的開發版本。 如果您要安裝預先構建的二進制版本(Linux 上的 .rpm 或 .apt - 我不知道 Solaris 的等效版本),那么您將不需要這些。

  • 您將需要 Perl DBI 庫。

在我看來,DBD::Oracle 已安裝。 這意味着還將安裝 DBI。 但是 DBD::Oracle 很難找到客戶端庫。 這是令人驚訝的,因為安裝 DBD::Oracle 需要它們。

所以,我懷疑要么不再安裝 Oracle 客戶端庫,要么安裝了它們,但不在 DBD::Oracle 尋找它們的地方。

DBD::Oracle 是如何安裝的? 您是否有可以檢查錯誤的安裝日志?

問題已解決。 庫路徑中缺少 lib 文件“libclntsh.so.10.1”。 我已復制文件,問題已解決

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM