cx_oracle python问题:ORA-01008:并非所有变量都绑定



我正在尝试使用 Python 插入我的 Oracle 表cx_oracle,但出现以下错误: cx_Oracle.数据库错误: ORA-01008: 未绑定所有变量

my input file (test.log) has below content:
123:ABC:676:101:1014
131:BCD:668:110:1103
155:ABE:663:110:1107
conn = cx_Oracle.connect(user='user', password='pwd', dsn='localhost:1521/mydb')
reader = csv.reader(open("C:\test.log", "r"))
rec = []
curs=conn.cursor()
for line in reader:
rec.append(line)
curs.executemany("insert into MY_DB.DEPTTABLE values (:0, :1, :2, :3, :4)", rec)

任何帮助不胜感激!

您可以通过使用带有sep= ':'(或delimiter=':'(参数的函数来弄清楚pandas.read_csv()以便用冒号字符拆分每一行:

import pandas as pd
import cx_Oracle
conn = cx_Oracle.connect(user='user', password='pwd', dsn='localhost:1521/mydb')
curs=conn.cursor()
df = pd.read_csv(r'C:\test.log',sep= ':',header=None) #to start from the top(first) row 
rec = df.astype(str).values.tolist()
for i in range(len(rec)):
curs.prepare('INSERT INTO MY_DB.DEPTTABLE VALUES(:0, :1, :2, :3, :4)')
curs.executemany(None,([rec[i]]))
conn.commit()
conn.close

其中reclist类型参数。

问题出在您的读者调用上,您需要为其提供分隔符参数:

reader = csv.reader(open("C:\test.log", "r"), delimiter=':')

否则,行变量只是一个字符串,而不是一个值元组。

最新更新