Python中导入cx-Oracle文件配置

连接方式#

import cx_Oracle as cx
 
#第一种
con = cx.connect('apps', 'apps123', '127.0.0.1:1521/TEST')
#第二种
con = cx.connect('root/root123@127.0.0.1:1521/orcl')
#第三种
dsn = cx.makedsn('127.0.0.1', '1521', 'orcl')
connection = cx.connect('root', 'root123', dsn)

 简单使用#

# -*- coding: utf-8 -*-
import cx_Oracle as cx      #导入模块
con = cx.connect('root', 'root123', '127.0.0.1:1521/ORCL')  #创建连接
cursor = con.cursor()       #创建游标
cursor.execute("select * from TDER where ID='28'")  #执行sql语句
data = cursor.fetchone()        #获取一条数据
print(data)     #打印数据
cursor.close()  #关闭游标
con.close()     #关闭数据库连接

Create a script like the one below:


# myscript.py

from __future__ import print_function

import cx_Oracle

# Connect as user "hr" with password "welcome" to the "orclpdb1" service running on this computer.
connection = cx_Oracle.connect("hr", "welcome", "localhost/orclpdb1")

cursor = connection.cursor()
cursor.execute("""
        SELECT first_name, last_name
        FROM employees
        WHERE department_id = :did AND employee_id > :eid""",
        did = 50,
        eid = 190)
for fname, lname in cursor:
    print("Values:", fname, lname)


oracle数据库的操作和mysql的pymysql操作基本相同,可以参考pymysql使用

windows下使用注意#

windows下是使用需要安装`Instant Client`

1 Oracle客户端下载 Instant Client

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

python读写orc文件 python orc文件_python

2) 解压到一个目录,并添加到环境变量

python读写orc文件 python orc文件_客户端_02

python读写orc文件 python orc文件_python读写orc文件_03

首先我安装的python是3.7版本,32位。这个在cmd下输入python就能看见。

python读写orc文件 python orc文件_python读写orc文件_04

连接Oracle比MySQL麻烦一些,如何连接MySQL,请点这里。

连接Oracle需要安装cx_Oracle和oracle客户端,由于我装的python3.7版本,找cx_Oracle的时候发现别人博客里的链接最高只能下载python3.6的cx_Oracle,我下载一个3.6的果然安装失败,网上也有那种报错的解决方法,但是我觉得毕竟版本不一样,不太想试。这情况让我不禁怀疑人生,不会更新这么慢吧,难道我还要等更新或者重新安装python3.6?后来总算找到了最新的下载地址,感觉还不错。下面直接从别处粘的。

Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块,其下载地址为https://pypi.org/project/cx_Oracle/#files。当然也可以通过其它的途径下载。

粘的时候第二个链接不对,我改了一下,不知道以后会不会再变,仔细看一下网页,就能找到在哪下载了。

python读写orc文件 python orc文件_python读写orc文件_05

我是先根据python版本找的要下载哪个,看样子还挺全的,Linux、win32、win64应该是都有,我直接下的win32。但是这个是.whl文件,又百度一下怎么安装.whl文件。

安装这个得先在cmd下输入:pip install wheel(如果报错则输入:pip.exe install wheel)。安装完毕,还是在cmd里,用dos命令找到cx_Oracle下载位置。下面放上dos进入路径的命令用法。

python读写orc文件 python orc文件_客户端_06

大概就是这样,然后继续输入安装cx-Oracle的命令,注意:这命令是用来装.whl文件的。

命令:pip install cx_Oracle-6.4.1-cp37-cp37m-win32.whl(如果报错,则输入:pip.exe install cx_Oracle-6.4.1-cp37-cp37m-win32.whl),其中“cx_Oracle-6.4.1-cp37-cp37m-win32.whl”是我的文件名。

下面情况就是安装成功了:

python读写orc文件 python orc文件_MySQL_07

现在完成了一半了,然后再下载Oracle客户端,百度找instantclient就行了,这里一定要确定好是下载32位的还是64位的,我之前有一个64位的,直接用总是报错:cx_Oracle.DatabaseError: DPI-1047: 32-bit Oracle Client library cannot be loaded: "D:\instantclient_12_2\oci.dll is not the correct architecture"

这意思是要用32位的客户端(我百度找答案的时候,别人都是提示让下载64位的客户端。。。)

重新找了一个32位的下载了,放到一个位置,然后配置环境变量,Path里加上路径,像我这就加D:\instantclient_12_2就行了。废了半天劲环境应该是好了,下面附上一段我用的代码,部分内容隐藏。(如果还不行,请再根据问题百度)

import cx_Oracle
 #连接数据库,下面括号里内容根据自己实际情况填写
 conn = cx_Oracle.connect('用户名/密码@IP:端口号/SERVICE_NAME')
 # 使用cursor()方法获取操作游标
 cursor = conn.cursor()
 #使用execute方法执行SQL语句
 result=cursor.execute('Select member_id from member')
 #使用fetchone()方法获取一条数据
 #data=cursor.fetchone()
  
 #获取所有数据
 all_data=cursor.fetchall()
  
 #获取部分数据,8条
 #many_data=cursor.fetchmany(8)
  
 print (all_data)
 db.close()


工作中只是查询会员号,然后验证会员号,所以增删改就没写,和MySQL差不多,应该能直接迁移,上面有连接MySQL的链接,那里写了MySQL的增删改的代码。