1.python安装第三方库cx_Oracle;
2.下载轻量级oracle客户端(版本根据oracle版本来定);
2.1 下载地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html(需要登录oracle)
2.2 解压instantclient-basic-windows.x64-11.2.0.4.0.zip,获得解压文件夹的路径oraclepath
3.在instantclient_11_2中新增文件tnsnames.ora;
3.1 为tnsnames.ora新增内容:(其中【数据库名,ip,端口,服务名】根据自己的数据库联机)
数据库名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 端口))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务名)
)
)
4.编写oracle数据库连接类:
import os
import cx_Oracle
from config.database_config import oracle_config
# 需要配置的环境变量
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# 下面两个的值对应2.2中的oraclepath
os.environ['TNS_ADMIN'] = 'C:\\Users\\instantclient_11_2'
os.environ['Path'] = 'C:\\Users\\instantclient_11_2'
class oracle:
def __init__(self):
self.oracle_info = oracle_config
self.conn = self.__connect()
def __connect(self):
try:
conn = cx_Oracle.connect(self.oracle_info['user'], self.oracle_info['pwd'],
self.oracle_info['dsn'])
return conn
except Exception as a:
print('数据库连接异常: {}'.format(a))
def getrows(self, sql):
"""
function: 执行sql获取查询结果
paras: sql
return: rows
"""
try:
cursor = self.conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
cursor.close()
return rows
except Exception as a:
print('数据库操作s异常: {}'.format(a))
def sql(self, sql):
"""
function: 执行sql
paras: sql
return:
"""
try:
cursor = self.conn.cursor()
cursor.execute(sql)
self.conn.commit()
cursor.close()
except Exception as a:
print('数据库操作s异常: {}'.format(a))
if __name__ == '__main__':
sql1 = 'SELECT * from dbname'
count = 0
for x in oracle().getrows(sql1):
print(x)
count += 1
print(count)