python 连接 Oracle 数据库
# -*- coding: utf-8 -*-
import os
import pandas as pd
import cx_Oracle as cx
import datetime
# os.environ['path'] = r'D:\Program Files\plsql developer8.0\instantclient_19_12'
# 设置oci路径
os.environ['path'] = './instantclient_19_12'
# 数据库连接配置
# user = 'ods'
# passwd = 'ods'
# url = '172.31.238.138:1521/orcl'
user = 'xxxx'
passwd = 'xxxx'
url = '127.0.0.1:1521/xxx'
# panas读Oracle 但是不能出现 clob字段
def pd_query_ora(sql_str:str):
try:
db = cx.connect(user, passwd, url)
df: pd.DataFrame = pd.read_sql_query(sql_str, db)
db.close()
isbool:bool = True
return df,isbool
except Exception as e:
# print(e)
isbool:bool = False
return pd.DataFrame(data=[]),isbool
# lis读Oracle 可以能出现 clob字段
def read_sql(sqlstr:str):
conn = cx.connect(user, passwd, url)
cur = conn.cursor()
cur.execute(sqlstr)
rels = []
for tup in cur:
pram = []
for itm in tup:
if type(itm) == cx.LOB:
text = itm.read()
pram.append(text)
elif type(itm)==datetime.datetime:
# print(itm)
text = datetime.datetime.strftime(itm,'%Y-%m-%d %H:%M:%S')
pram.append(text)
else:
pram.append(itm)
rels.append(pram)
cur.close()
conn.close()
return rels
自动化学习。

浙公网安备 33010602011771号