web-dev-qa-db-ja.com

Mac上のOracleSqlplusクライアント

64ビットのMacにSqlPlusクライアントをインストールしたい。最初に、64ビット用のsqlplusをインストールしましたが、エラーが発生しました:"Segmentation fault:11"次に、32ビット用のsqlplusをインストールしましたが、それでも問題が発生します:。 ./libsqlplus.dylib:適切なイメージが見つかりません../libsqlplus.dylib:mach-o、ただしアーキテクチャが間違っています

私は多くのチュートリアルを使用しましたが、それでもこの問題を解決しませんでした。

13
Ryainad

11gR264ビットインスタントクライアントは10.8.5で動作します。接続しているデータベースがまだ10gであるかどうかは関係ありませんが、11gクライアントを使用できます。特定のojdbcバージョンが必要な場合を除いて、古いバージョンを引き続き使用する理由はわかりません。しかし、おそらくユースケースがあるか、ダウンロード用に目立つようにリストされていないでしょう。とにかく、これは新規インストールを示しています。

$ unzip instantclient-basic-macos.x64-11.2.0.3.0.Zip
Archive:  instantclient-basic-macos.x64-11.2.0.3.0.Zip
  inflating: instantclient_11_2/BASIC_README  
  inflating: instantclient_11_2/adrci  
  inflating: instantclient_11_2/genezi  
  inflating: instantclient_11_2/libclntsh.dylib.11.1  
  inflating: instantclient_11_2/libnnz11.dylib  
  inflating: instantclient_11_2/libocci.dylib.11.1  
  inflating: instantclient_11_2/libociei.dylib  
  inflating: instantclient_11_2/libocijdbc11.dylib  
  inflating: instantclient_11_2/ojdbc5.jar  
  inflating: instantclient_11_2/ojdbc6.jar  
  inflating: instantclient_11_2/uidrvci  
  inflating: instantclient_11_2/xstreams.jar  

$ unzip instantclient-sqlplus-macos.x64-11.2.0.3.0.Zip
Archive:  instantclient-sqlplus-macos.x64-11.2.0.3.0.Zip
  inflating: instantclient_11_2/SQLPLUS_README  
  inflating: instantclient_11_2/glogin.sql  
  inflating: instantclient_11_2/libsqlplus.dylib  
  inflating: instantclient_11_2/libsqlplusic.dylib  
  inflating: instantclient_11_2/sqlplus  

$ export DYLD_LIBRARY_PATH=$PWD/instantclient_11_2
$ $PWD/instantclient_11_2/sqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 09:49:06 2013

Copyright (c) 1982, 2012, Oracle.  All rights reserved.

Enter user-name: 

tnsnames.oraはどこにでも作成できます。これを同じinstant client_11_2ディレクトリに置きます。

$ export TNS_ADMIN=$PWD/instantclient_11_2
$ echo "TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = <db_server>)(PORT = <listener port>))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = <full_db_service_name>)
    )
  )
" > $TNS_ADMIN/tnsnames.ora

$ $PWD/instantclient_11_2/sqlplus user/password@test

SQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 09:55:14 2013

Copyright (c) 1982, 2012, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> 

32ビットバージョンも正常に動作します。

$ rm -rf $PWD/instantclient_11_2
$ unzip instantclient-basic-macos.x32-11.2.0.3.0.Zip
$ unzip instantclient-sqlplus-macos.x32-11.2.0.3.0.Zip
$ export DYLD_LIBRARY_PATH=$PWD/instantclient_11_2
$ export TNS_ADMIN=$PWD/instantclient_11_2
$ echo "TEST = ..." > TNS_ADMIN/tnsnames.ora
$ $PWD/instantclient_11_2/sqlplus user/password@test

SQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 10:06:19 2013

Copyright (c) 1982, 2012, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> 

もちろん、instanstclient_11_2ディレクトリを任意の名前に移動または名前変更できます。DYLD_LIBRARY_PATHTNS_ADMIN、および(作業を楽にするために)PATH環境変数が続くことを確認してください。それ。複数のバージョンがインストールされている場合は、変数が一度に1つのバージョンのみを指すようにして、適切なライブラリなどを選択してください(複数のバージョンがある場合は、TNS_ADMINを中央のどこかに作成する方がはるかに理にかなっています。 tnsnames.ora)のコピーを1つだけ維持する必要があります。

確認する必要がありますが、Javaから接続している場合は、32ビットバージョンを使用する必要があると思います。 Java自体のアーキテクチャをバッチ処理する必要があるため、インストールしたバージョンによって異なると思います。

34
Alex Poole