python与oracle数据库交互

cx_Oracle

    • 一、环境准备
    • 二、安装cx_Oracle
    • 三、对oracle进行操作
    • 四、总结

一、环境准备

  • oracle11g
  • python 3.10.1
  • cx_Oracle 8.3.0

二、安装cx_Oracle

1、可以在pycharm中进行下载

  • File/Settings/Project:项目名称/Python Interpreter/+,搜索cx_Oracle进行下载

2、Terminal窗口

pip install cx_Oracle

注:下载下来的python库必须要在$PythonProject/Lib/site-packages下

3、若还是没下载下来,可到官网进行下载
cx_Oracle下载
python与oracle数据库交互_第1张图片

1、下载上图所示的.whl文件,python什么版本就下载什么版本,如py3.8下载cp3.8,
2、将.whl文件放到Lib/site_packages目录下

pip install .whl

三、对oracle进行操作

1、python连接oracle数据库的三种方式

#1用户名、密码、监听写在一起
import cx_Oracle
conn = cx_Oracle('username/password@ip:端口号/实例名')
#2用户名、密码、监听分开写
import cx_Oracle
conn = cx_Oracle('username','password','ip:端口号/实例名')
#3分两步写,配置监听并连接
import cx_Oracle
moniter = cx_Oracle.makedsn('ip',端口号,'实例名')
conn = cx_Oracle.connect('用户名','密码',moniter)

2、查询

import cx_Oracle
#打开连接
conn = cx_Oracle.connect('scott','scott','10.10.189.180:1521/orcl')
#打开游标
cur.curser()
#执行sql语句
cur.execute('select count(1) from emp')
#赋值
data = cur.fetchone()
#重新执行
cur.execute('select ename,empno,job from emp')
for i in range(data[0]):
	a,b,c = cur.fentchone()
	d = '我的名字是{},工号是{},工作是{}'.format(a,b,c)
	print(d)
#关闭游标
cur.close()
#关闭连接
conn.close()

3、插入

import cx_Oracle
conn = cx_Oracle.connect('user/password@ip:端口号/实例名')
cur = conn.cursor()
cur.execute("select count(1) from user_tables t where t.table_name = 'TEST'")
count = cur.fetchone()
if count[0] == 0:
	cur.execute("create table test values(id number,name varchar2(100))")
	cur.execute("insert into test values(1,'秦始皇')")
	cur.execute("insert into test values(2,'唐太宗')")
	cur.execute("insert into test values(3,'宋太祖')")
	conn.commit() #提交,若不提交则没有数据
cur.close()
conn.close()

上述就是对oracle数据库的基本操作

四、总结

  • 这次安装遇到的最大问题就是cx_Oracle,在cmd窗口pip install cx_Oracle并且import
    cx_Oracle是成功的,但是在pycharm报错。后来发现不是在一个项目下,所以把下载下来的cx_Oracle移动到本地项目的site-packages解决问题

  • python版本应小于等于3.10

你可能感兴趣的:(Python,oracle,数据库,python)