Клиент Oracle Sqlplus на Mac

Я хочу установить клиент SqlPlus на моем Mac, который является 64-битным. Во-первых, я установил sqlplus для 64-битного, но у меня была ошибка: "Ошибка сегментации: 11" Затем я установил sqlplus для 32-разрядной версии, но все еще проблема: .. /libsqlplus.dylib: не найдено подходящего изображения.. /libsqlplus.dylib: mach-o, но неправильная архитектура

Я использовал много учебников, но до сих пор не решил эту проблему.

Ответ 1

64-разрядный мгновенный клиент 11gR2 работает с 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/[email protected]

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/[email protected]

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_PATH, TNS_ADMIN и (чтобы сделать жизнь проще) PATH переменных окружения. Если у вас установлено более одной версии, убедитесь, что переменные указывают только на одну версию за раз, поэтому вы выбираете правильные библиотеки и т.д. (Если у вас есть несколько версий, создание TNS_ADMIN где-то в центре имеет гораздо больше смысла, поскольку вы только необходимо сохранить одну копию tnsnames.ora).

Мне нужно будет проверить, но я думаю, вам, возможно, придется использовать 32-битную версию, если вы подключаетесь к Java; он должен выставить архитектуру самой Java, поэтому я предполагаю, что она зависит от того, какую версию вы установили.