1. 程式人生 > >python ora-01036 illegal variable name number錯誤

python ora-01036 illegal variable name number錯誤

今天做專案 使用python3 在使用的過程中 需要實現sql中插入list 使用 in 的操作

首先使用如下sql語句:

   sql = ""     sql += "select distinct (stage),eqp_no,fixture_no "     sql += "from %s " % table_name     sql += "where serial_no in (%s)"% ",".join(['%s']*len(sn_list))

   cur.execute(sql,sn_list)  //按照網上的說法 是要新增sn_list到引數中     #cur.execute("select distinct (stage),eqp_no,fixture_no from TB_TESTDATA where serial_no in ('DLC815629XNGJ42A3')")    df = pd.DataFrame(cur.fetchall(),columns=select_columns)

    cur.close()     conn.close()

執行後沒有像網上的說法一樣 執行成功,反而報錯  ora-01036 illegal variable name number

改成如下即可:

select_columns = ["stage","eqp_no","fixture_no"]     cur = conn.cursor()     sql = ""     sql += "select distinct (stage),eqp_no,fixture_no "     sql += "from %s " % table_name     sql += "where serial_no in (%s)"     #% ",".join(['%s']*len(sn_list))     list_p = ','.join(list(map(lambda x: "'%s'" %x,sn_list)))     sql = sql % list_p     #select distinct (stage),eqp_no,fixture_no from TB_TESTDATA where serial_no in (%s,%s,%s)     print(sql)     cur.execute(sql)     #cur.execute("select distinct (stage),eqp_no,fixture_no from TB_TESTDATA where serial_no in ('DLC815629XNGJ42A3')")     df = pd.DataFrame(cur.fetchall(),columns=select_columns)

    cur.close()     conn.close()

執行成功 第一次寫 做個記錄。