sql >> データベース >  >> RDS >> Oracle

%ENVが機能せず、共有ライブラリを使用できません

    LD_LIBRARY_PATH 環境変数は前に設定する必要があります プログラムが起動します— perlの前 それ自体がロードされます。 BEGIN{}で変更する 新しいプログラムに影響します 開始しますが、共有ライブラリの読み込みには影響しません。 —この場合(DBD ::Oracleを使用したことはありませんが)、Oracle .soをロードしています。 すでに実行中のプログラムに追加するため、LD_LIBRARY_PATHを変更するには「遅すぎます」 。ダイナミックリンカー/lib/ld.so (またはそう)perlの前に開始されます したがって、スクリプトがコンパイルされてBEGIN{}になるまでに 実行され、すでに設定されています。

    あなたはできた スクリプトを独自の後継者または何か*として再実行してみてください。ただし、短いシェルスクリプトが最も簡単な解決策になることはほぼ間違いありません。

      #!/bin/sh
      export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client64/lib
      export ORACLE_SID=prod
      exec /usr/local/bin/your-db-program "[email protected]"
    

    *-これはちょっとクレイジーですが、TIMTOWTDI:

      eval { 
         use DBD::Oracle foo bar baz; …
      };
      if ([email protected] =~ /install_driver\(Oracle\) failed/) {
         $ENV{LD_LIBRARY_PATH} .= ':/usr/lib/oracle/10.2.0.3/client64/lib';
         $ENV{ORACLE_SID} = 'prod';
         warn "Restarting with LD_LIBRARY_PATH reset:\n\[email protected]\n";
         exec { $0 } $0 => @ARGV;
      }
    


    1. パイプからのMysqlimport

    2. LinqとMySqlを使用して、Datagridview1(Table1)の値を合計し、Datagridview2(Table2)に保存します。

    3. MySQLクエリのウィンドウ関数

    4. クエリにありません...奇妙な結果