cx_Oracle:如何使用python使用OFFSET子句在占位符中传递变量值

问题描述 投票:0回答:2

[每当尝试在下面的代码下运行时,我都会收到错误“ 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)
python arrays python-3.x cx-oracle
2个回答
0
投票

在对cursor.execute()的调用中,您没有传递参数!您需要这样的东西:

cur.execute("select * from nm_src_lkup ORDER BY NM_SRC_CD OFFSET :row_count ROWS",
        row_count=row_count)
© www.soinside.com 2019 - 2024. All rights reserved.