mac 终端 oracle,MacOS下使用Oracle客户端

前言

使用Python进行数据建模时用到Oracle数据库,开发机用的是MacBook。在此之前并没有过Mac下使用Oracle数据库的经历,查过官网资料,配置比较复杂。

Installation

Installing Instant Client 12.2 on macOS

Instant Client 12.2 supports macOS High Sierra, Sierra and El Capitan.

Download the desired Instant Client ZIP files. All installations require the Basic or Basic Light package.

Unzip the packages into a single directory such as ~/instantclient_12_2 that is accessible to your application. For example:

cd ~

unzip instantclient-basic-macos.x64-12.2.0.1.0.zip

Add links to $HOME/lib or /usr/local/lib to enable applications to find the libraries. For example, OCI based applications could do:

mkdir ~/lib

ln -s ~/instantclient_12_2/libclntsh.dylib ~/lib/

ln -s ~/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/

Alternatively, copy the required libraries. For example, to use OCI applications:

mkdir ~/lib

cp /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/

cp /opt/oracle/instantclient_12_2/libclntshcore.dylib.12.1 ~/lib/

cp /opt/oracle/instantclient_12_2/libons.dylib ~/lib/

cp /opt/oracle/instantclient_12_2/libnnz12.dylib ~/lib/

cp /opt/oracle/instantclient_12_2/libociei.dylib ~/lib/

ln -s ~/lib/libclntsh.dylib.12.1 ~/lib/libclntsh.dylib

Note: Custom OCI applications, such as those that bundle Instant Client, may want to link with -rpath set to the directory containing Instant Client >12.2 instead of relying on libraries being in ~/lib.

If you intend to co-locate optional Oracle configuration files such as tnsnames.ora, sqlnet.ora, ldap.ora, or oraaccess.xml with Instant Client, >then create a network/admin subdirectory. For example:

mkdir -p ~/instantclient_12_2/network/admin

This is the default Oracle configuration directory for applications linked with this Instant Client.

Alternatively, Oracle configuration files can be put in another, accessible directory. Then set the environment variable TNS_ADMIN to that directory >name.

To use binaries such as sqlplus from the SQL*Plus package, unzip the package to the same directory as the Basic package and then update your PATH >environment variable, for example:

export PATH=~/instantclient_12_2:$PATH

Run SQL*Plus and connect using your database credentials and connection string:

sqlplus hr/welcome@localhost/orclpdb

于是把以往的经验结合google总结出较为简单的客户端配置方法,测试可用。

软件环境

软件

版本

文件名

macOS

10.13.6

Python

3.7.0

cx-Oracle

6.4.1

Instant Client for macOS

12.2.0.1.0

instantclient-basic-macos.x64-12.2.0.1.0-2.zip

步骤

e2fe32022ac6?from=singlemessage

Instant Client Downloads

for macOS (Intel x86)

2. 安装

将instantclient-basic-macos.x64-12.2.0.1.0-2.zip解压到用户根目录~下,解压得到目录instantclient_12_2。

anyone$ pwd

/Users/anyone

anyone$ unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip

Archive: instantclient-basic-macos.x64-12.2.0.1.0-2.zip

inflating: instantclient_12_2/BASIC_README

inflating: instantclient_12_2/adrci

inflating: instantclient_12_2/genezi

linking: instantclient_12_2/libclntsh.dylib -> libclntsh.dylib.12.1

inflating: instantclient_12_2/libclntsh.dylib.12.1

inflating: instantclient_12_2/libclntshcore.dylib.12.1

inflating: instantclient_12_2/libnnz12.dylib

linking: instantclient_12_2/libocci.dylib -> libocci.dylib.12.1

inflating: instantclient_12_2/libocci.dylib.12.1

inflating: instantclient_12_2/libociei.dylib

inflating: instantclient_12_2/libocijdbc12.dylib

inflating: instantclient_12_2/libons.dylib

inflating: instantclient_12_2/liboramysql12.dylib

inflating: instantclient_12_2/ojdbc8.jar

inflating: instantclient_12_2/uidrvci

inflating: instantclient_12_2/xstreams.jar

finishing deferred symbolic links:

instantclient_12_2/libclntsh.dylib -> libclntsh.dylib.12.1

instantclient_12_2/libocci.dylib -> libocci.dylib.12.1

anyone$ ls -l

-rw-r--r--@ 1 anyone staff 68160048 9 5 14:49 instantclient-basic-macos.x64-12.2.0.1.0-2.zip

drwxr-xr-x@ 19 anyone staff 608 9 5 17:00 instantclient_12_2

3. 环境变量

系统用的是bash,向.bash_profile中添加Oracle环境变量(可根据实际情况调整)。

anyone$ vi ~/.bash_profile

export ORACLE_HOME=~/instantclient_12_2

export DYLD_LIBRARY_PATH=$ORACLE_HOME

export SQLPATH=$ORACLE_HOME

export NLS_LANG=AMERICAN_AMERICA.UTF8

export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

export PATH=$PATH:$ORACLE_HOME:.

重新登录终端或执行source ~/.bash_profile使环境变量生效。

4. 连接测试

将测试代码存到oracle_con.py文件中,执行查看结果:

import cx_Oracle

def test():

conn = cx_Oracle.connect("user/password@IP/SERVICE_NAME")

cur = conn.cursor()

r = cur.execute("select sysdate from dual")

print(r.fetchall())

if __name__ == '__main__':

test()

antone$ python3 oracle_con.py

[(datetime.datetime(2018, 9, 12, 10, 23, 45),)]

5. 总结

首次在macOS下使用Oracle客户端,看过官网配置文档实在是复杂,经过摸索发现并没有那么艰难,凡事多思考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值