Python 之连接使用 oracle

此篇文章主要是记录一下第一次使用 Python 的的库连接使用 oracle。
如下是目录:

  1. 安装下载依赖 cx_Oracle
  2. 下载安装客户端及配置环境
  3. 连接方式
  4. 插入数据
  5. 简单基本语句
1、安装依赖 cx_Oracle

使用 pip install 的命令下载这个依赖,使用国内镜像源会快一点,所以使用如下语句,指定镜像地址:

pip3 install cx_Oracle==6.4.1 -i https://mirrors.aliyun.com/pypi/simple/
2、下载安装客户端及配置环境

首先要说一点的是,我在两种机器上都试过,一个是 Mac,一个是 Linux,在 Mac 上按照教程啥的都安装 OK,环境变量啥的也都弄了,但是,总是时好时坏,不知道是不是姿势不太对。

所以,我就换到了 Linux ,用 Linux 一次安装,永久生效,无敌!!!
Linux 牛逼!!!

所以接下来说的是在 Linux 上的安装步骤,其实和 Mac 上的步骤差不多,但是效果不太一样。

首先,下载客户端,去官方网站下载客户端:
https://www.oracle.com/database/technologies/instant-client/downloads.html
比如我需要下载的是 Linux 版本,所以选择的是这个 zip 包:
在这里插入图片描述
解压缩
将下载的文件放到系统的 /home/user/ 目录下(这里可以随便放,可以放到任何有权限的地方),解压缩,然后就可以得到一个 文件名类似于 instantclient_19_8 的文件夹。

配置环境变量
在用户目录下的 .bash_profile 文件中添加如下代码:

# /home/hunter/.bash_profile
export ORACLE_HOME=/home/jumpserver/instantclient_19_8/
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH
3、连接方式

使用 cx_Oracle 连接 Oracle 跟使用 pymysql 模块连接 MySQL 的方式差不多,需要用到 ip、port、username、password、service 等参数,以下是连接 Oracle 的方式:

import cx_Oracle
class OracleConnect(object):
    host = '127.0.0.1:1521'
    username = 'user'
    password = 'password'
    service = 'service_name'

conn_str="%s/%s@%s/%s” % (OracleConnect.username, OracleConnect.password, OracleConnect.host, OracleConnect.service)
oracle_conn = cx_Oracle.connect(conn_str)
cursor = oracle_conn.cursor()

如果输入上述语句,没有报错,那么说明环境配置是 OK 的,并且 Oracle 数据库连接也没问题,接下来就可以搞事情了。

4、插入数据

在 Python 中插入 Oracle 的语法和插入 MySQL 的语法是不太一样的,我觉得比较好用的,也是我之前用到的方法,就是直接使用 executemany() 方法,无论是单条数据,还是多条数据,都使用这个方法。

比如数据表名为 BOOK_TABLE,有 BOOK_NAME、AUTHOR 两个字段。
现在要往里面插入如下几条数据:

data = (('挪威的森林', '村上春树'),
('顾城的诗', '顾城'),
('北野武的小酒馆', '北野武'))

在 cx_Oracle 中使用的插入多条数据的使用方法如下:

insert_sql = "INSERT INTO BOOK_TABLE (BOOK_NAME, AUTHOR) VALUES(:1, :2)"
cursor.executemany(insert_sql, data)
oracle_conn.commit()

然后使用 SELECT 语句就可以查到插入的数据。

关于插入中文的问题

如果在上述过程中,发现报错,说什么 acsii 码之类的问题,意料之中,哈哈哈哈哈哈,需要在脚本的前面指定一下编码:

import os
os.environ['LANG'] = "zh_CN.UTF-8"
os.environ['NLS_LANG'] = "SIMPLIFIED CHINESE_CHINA.UTF8"
5、简单基本语句

Oracle 和 MySQL 的一些基本语句是相同的,比如 SELECT、TRUNCATE等操作。
(其他的我也没用过,也不想了解了。。。。)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值