[每当尝试在下面的代码下运行时,我都会收到错误“ cur.execute(”从nm_src_lkup中选择* ORDER BY NM_SRC_CD OFFSET:row_count ROWS“)cx_Oracle.DatabaseError:ORA-01008:并非所有变量都已绑定”。我正在通过select查询在OFFSET语句中传递rowcount变量值。但是它不起作用。请帮帮我。
from time import sleep
import sys
import cx_Oracle
import csv
IDLE_INTERVAL_IN_SECONDS = 100
dsn_tns = cx_Oracle.makedsn('ppseelm-ax2255.ikeadt.com', '1521', service_name='pp1030.ikeadt.com')
conn = cx_Oracle.connect('MDBSE','mdbB5se', dsn=dsn_tns)
cur = conn.cursor()
row_count = 0
while True:
cur.execute("select * from nm_src_lkup ORDER BY NM_SRC_CD OFFSET :row_count ROWS")
row_count = cur.rowcount
if row_count > 0:
file = open("skp1.csv","w")
output = csv.writer(file , dialect='excel')
for row_data in cur:
output.writerow(row_data)
sleep(IDLE_INTERVAL_IN_SECONDS)
在对cursor.execute()的调用中,您没有传递参数!您需要这样的东西:
cur.execute("select * from nm_src_lkup ORDER BY NM_SRC_CD OFFSET :row_count ROWS",
row_count=row_count)