官网下载地址:
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 ~/.zshrcOracle配置文件
创建目录
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@CentOSORA-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控制台出现中文乱码的问题》