macOS中配置oracle客户端与sqlplus

下载

官网下载地址:

https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html

下载自己需要的版本的。个人建议下载与服务端版本相同或者接近的版本,这样可以避免一些坑。

这里我下载的是:

解压

把下载的文件解压到任意目录(根据自己喜好)。
我是解压到这个目录了:/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.orasqlnet.oraldap.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

在这里插入图片描述
然后这个问题就能解决了。

解决 sqlplus中文乱码

查数据库编码:

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中设定行大小、页大小、字符列格式、数字列格式、清屏

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控制台出现中文乱码的问题》

猜你喜欢

转载自blog.csdn.net/lxyoucan/article/details/114021156
今日推荐