目录
[3.本机安装instantclient 数据库客户端](#3.本机安装instantclient 数据库客户端)
(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.测试连接情况
以下代码简单进行连接操作,看能不能连接上
python
# 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.获取数据示例代码
python
import cx_Oracle
import pandas as pd
if __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