官网下载地址:
https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
下载自己需要的版本的。个人建议下载与服务端版本相同或者接近的版本,这样可以避免一些坑。
这里我下载的是:
- instantclient-basic-macos.x64-11.2.0.4.0.zip
- instantclient-sqlplus-macos.x64-11.2.0.4.0.zip 依赖上面的basic运行。
把下载的文件解压到任意目录(根据自己喜好)。 我是解压到这个目录了:/Users/itkey/mac/soft/bin/instantclient_11_2
两个zip包都解压到一个地方。 我的文件结构如下:
~/mac/soft/bin/instantclient_11_2 $ ls [14:25:26]
BASIC_README genezi libnnz11.dylib libocijdbc11.dylib ojdbc5.jar uidrvci
SQLPLUS_README glogin.sql libocci.dylib.11.1 libsqlplus.dylib ojdbc6.jar xstreams.jar
adrci libclntsh.dylib.11.1 libociei.dylib libsqlplusic.dylib sqlplus
添加链接~/lib
或/usr/local/lib
使应用程序能够找到库。例如,基于OCI的应用程序可以执行以下操作:
方式一:建立软链接(推荐)
mkdir ~/lib
ln -s ~/mac/soft/bin/instantclient_11_2/libclntsh.dylib.11.1 ~/lib/
ln -s ~/mac/soft/bin/instantclient_11_2/libsqlplus.dylib ~/lib/
ln -s ~/mac/soft/bin/instantclient_11_2/libsqlplusic.dylib ~/lib/
ln -s ~/mac/soft/bin/instantclient_11_2/libnnz11.dylib ~/lib/
命令中的路径请根据你的实际保存路径调整。 方式二: 直接复制相关文件到 ~/lib
目录即可。(理论可以,我没测试)
cd /Users/itkey/mac/soft/bin/instantclient_11_2
./sqlplus
第一次执行是无法打开的,在要【安全与隐私】中允许一下,点击“仍然允许” 允许后在执行上面命令尝试打开。
点击“打开”。
同理其他的组件也一样“允许”,会有好多个这样的提示,都允许即可。
运行成功结果如下:
itkey@ycmit: ~/mac/soft/bin/instantclient_11_2 $ ./sqlplus [14:40:26]
SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 24 14:40:37 2021
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name:
设置环境变更
如果每次进安装目录在运行就太麻烦了,更新一PATH变量。
vim ~/.zshrc
在最后一行加入。
export PATH=~/mac/soft/bin/instantclient_11_2/:$PATH
使环境变更立马生效
source ~/.zshrc
Oracle配置文件
创建目录
mkdir -p ~/mac/soft/bin/instantclient_11_2/network/admin
这是与此即时客户端链接的应用程序的默认Oracle配置目录。如tnsnames.ora
,sqlnet.ora
,ldap.ora
,或 oraaccess.xml
放在这个目录。
tnsnames.ora我用的比较多。 我的配置如下,仅供参考:
# tnsnames.ora Network Configuration File
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
CentOS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.184.5)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
连接示例
连接名:CentOS 用户名:usr_sg 密码:manager
sqlplus usr_sg/manager@CentOS
ORA-21561: OID generation failed
如果你遇到如下错误: $ sqlplus system/manager@CentOS [15:33:08]
SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 24 15:33:20 2021
Copyright © 1982, 2013, Oracle. All rights reserved.
ERROR: ORA-21561: OID generation failed
解决办法:
sudo vim /etc/hosts
然后这个问题就能解决了。
查数据库编码:
select userenv('language') from dual;
我的结果如下:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
也就是说数据库的编码是:AMERICAN_AMERICA.AL32UTF8
那么在运行 sqlplus前运行:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
即可临时解决中文乱码的问题。需要永久解决,就加到环境变量中即可。
sqlplus中设定行大小、页大小、字符列格式、数字列格式、清屏设置linesize、pagesize、 sqlplus中设定行大小
SQL> set linesize 32767
sqlplus中设定页大小
SQL> set pagesize 50000 https://www.cnblogs.com/xqzt/p/4458061.html
参考https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
《解决ORA-21561: OID generation failed》
《解决SqlPlus控制台出现中文乱码的问题》