我想在我的 64 位 Mac 上安装 SqlPlus 客户端。首先,我为 64 位安装了 sqlplus,但出现错误: “Segmentation fault: 11” 然后我为 32 位安装了 sqlplus,但仍然出现问题: ../libsqlplus.dylib: no proper image found 。 ./libsqlplus.dylib:mach-o,但架构错误
我已经使用了很多教程,但仍然没有解决这个问题。
我想在我的 64 位 Mac 上安装 SqlPlus 客户端。首先,我为 64 位安装了 sqlplus,但出现错误: “Segmentation fault: 11” 然后我为 32 位安装了 sqlplus,但仍然出现问题: ../libsqlplus.dylib: no proper image found 。 ./libsqlplus.dylib:mach-o,但架构错误
我已经使用了很多教程,但仍然没有解决这个问题。
11gR2 64 位即时客户端适用于 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_PATH
,TNS_ADMIN
和(为了让生活更轻松)PATH
环境变量跟随它。如果您安装了多个版本,请确保变量一次仅指向一个版本,以便您选择正确的库等。(如果您确实有多个版本,则将TNS_ADMIN
某个位置设置为中心更有意义,因为您只需要维护一份tnsnames.ora
)。
我需要检查一下,但我认为如果您从 Java 连接,您可能仍必须使用 32 位版本;它必须批量处理 Java 本身的体系结构,所以我想这取决于您安装了哪个版本。