目录
(1)安装python和相关库
1.python的下载和安装
2.python安装cx_Oracle库和pandas库
3.本机安装instantclient 数据库客户端
先安装instantclient
然后设置环境变量
(2)准备好连接Oracle数据库地址等五项信息
(3)用python连接到Oracle数据库
1.测试连接情况
2.获取数据示例代码
(1)安装python和相关库
1.python的下载和安装
这个自行上网搜索。
2.python安装cx_Oracle库和pandas库
打开"命令提示符"
输入pip install pandas安装pandas库
输入pip install cx_Oracle安装cx_Oracle库
3.本机安装instantclient 数据库客户端
先安装instantclient
因为不安装这个后面会报错:cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library
下载地址:Oracle Instant Client Downloads
注意下载的版本位数,python是64位的instantclient 就下64位的,python是32位的instantclient 就下32位的
然后选择了Version 12.2.0.1.0,下载了basic和sqlplus压缩包
将两者解压到同一个文件夹oracle下,他们的内容会自己放在一起
解压好了就行,免安装的,可以直接用。记得自己解压的路径位置,做好管理。
然后设置环境变量
变量名:Path
变量值:D:\software\oracle\instantclient_21_9
变量名:ORACLE_HOME
变量值:D:\software\oracle\instantclient_21_9
变量名:TNS_ADMIN
变量值:D:\software\oracle\instantclient_21_9\network\admin
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(2)准备好连接Oracle数据库地址等五项信息
- IP地址
- 端口
- 用户名
- 密码
- 数据库名
(3)用python连接到Oracle数据库
1.测试连接情况
以下代码简单进行连接操作,看能不能连接上
# test.py
import cx_Oracle
if __name__ == '__main__':# 连接到Oracle数据库,需用户名、密码、ip、端口和数据库名conn = cx_Oracle.connect('用户名', '密码', 'ip地址:端口/数据库名')# conn = cx_Oracle.connect('用户名/密码@ip地址:端口/数据库名')# conn = cx_Oracle.connect('用户名', '密码', # cx_Oracle.makedsn('ip地址', '端口', None, '数据库名'))# 创建游标cursor = conn.cursor()print('连接数据库成功!')# 关闭游标和oracle数据库cursor.close()conn.close()
运行结果
2.获取数据示例代码
import cx_Oracle
import pandas as pdif __name__ == '__main__':# 连接到Oracle数据库,需用户名、密码、ip、端口和数据库名conn = cx_Oracle.connect('username', 'password', 'ip:端口/数据库名')# 创建游标cursor = conn.cursor()# 撰写sql语句,需要什么字段就查询什么字段sql = 'select S_INFO_WINDCODE,ANN_DT from AShareANNFinancialIndicator'# 通过游标和sql获取数据test = cursor.execute(sql)# print(test.fetchmany(50)) # 前50行数据data = test.fetchall() # 全部数据# 获取英文列名title = [i[0] for i in cursor.description]print(title)print(type(title))# 数据处理df = pd.DataFrame(data=data, columns=title)print(data)pass# 关闭游标和oracle数据库cursor.close()conn.close()
end