安装cx_Oracle
Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块;同样也可以直接通过pip或者pycharm中settings进行下载安装;
pip install cx_Oracle
操作步骤
①.引用模块cx_Oracle
②.连接数据库
③.获取cursor
④.使用cursor进行各种操作
⑤.关闭cursor
⑥.关闭连接
连接方式
第一种方式:普通用户
如果端口号默认1521可以省略
#导入模块
import cx_Oracle
get_conn1 = cx_Oracle.connect('scott','tiger','localhost:1521/orcl')
第二种方式:普通用户
#导入模块
import cx_Oracle
get_conn2 = cx_Oracle.connect('scott/tiger@localhost:1521/orcl')
第三种方式:系统管理员
#导入模块
import cx_Oracle
get_conn3 = cx_Oracle.connect('sys/123456@localhost:1521/orcl',mode=cx_Oracle.SYSDBA)
第四种方式:dsn_tns
#导入模块
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('localhost', 1521, 'orcl')
get_conn4 = cx_Oracle.connect('scott', 'tiger', dsn_tns)
注意:完成以上连接方式都必须安装对应Oracle版本的客户端,否则会抛出以下异常
可根据提示打开以下网址进行下载对应版本的客户端
https://oracle.github.io/odpi/doc/installation.html#windows
进入后有详细的说明以及操作:
此处切记必须选对应oracle版本的客户端进行下载;
下载后置于C盘新建一个文件夹oracle,并将其进行解压缩,如下图:
然后非常重要的、非常重要的、非常重要的,重要的事情说三遍,将该目录C:\oracle\instantclient_11_2路径添加到path环境变量中,且需要将该环境变量置于所有变量之前(实际只要置于oracle自动添加到path环境变量中之前即可);如下图:
最后,将pycharm也需要重启,其环境变量才会生效,最后重新启动重新执行脚本,则执行通过;
oracle后续的操作与其他类型数据库操作步骤一样,此处就不过多赘述。
EMP表的查询操作
#-*- coding:utf-8 -*-#
#-------------------------------------------------------------------------
#ProjectName: Python2020
#FileName: Oracle_Test.py
#Author: mutou
#Date: 2020/6/2 22:17
#Description:oracle操作
#--------------------------------------------------------------------------
#也是需要引用第三方模块
#引用模块
import cx_Oracle
#除了安装cx_Oracle模块以外,还需要下载对应版本的客户端,是对应cx_Oracle的客户端;必须下载与之当前oracle对应的客户端版本
#然后解压放在C盘新建的一个oracle目录下,重要的需要配置环境变量,将该目录的路径添加到path中,且需要放在所有变量的第一个;
#需要将pycharm关闭重新打开
#第一步:需要建立连接
class OracleTest(object):
def __init__(self):
#普通用户的基本信息;用户名、密码、服务器地址以及实例名
self.cnotallow=cx_Oracle.connect("scott","tiger","localhost/orcl")
self.get_cursor=self.conn.cursor()
#查询scott用户中的emp表
def select_data(self):
str_sql="select * from emp"
self.get_cursor.execute(str_sql)
get_reuslt=self.get_cursor.fetchall()
print(get_reuslt)
#测试一下:
if __name__=="__main__":
orac=OracleTest()
print(orac.conn)
orac.select_data()
执行结果如下: