私はcx_oracle接続を持っていますが、CSVファイルから姓のIDを収集しようとしている「バッチ」を実行しようとしています。以下は私のコードがあり、cx_Oracle.DatabaseErrorを取得しています。ORA-01756:引用符付きの文字列が正しく終了していないというエラーです。私はあなたが私のコメントのコードは、このようにフォーマットを使用し、それだけで正常に動作表示されますと、これは働いている知っているしかしcx_oracle from CSV
それはライン
and spriden_change_ind is null'''.format(lname,fname)
を指しています。 rows_to_dict_listは、基本的に出力に列名を追加するために、私がここで見つけた素敵な関数です。
いずれの方向もいいと思います!ありがとう
import csv, cx_Oracle
def rows_to_dict_list(cursor):
columns = [i[0] for i in cursor.description]
new_list = []
for row in cursor:
row_dict = dict()
for col in columns:
row_dict[col] = row[columns.index(col)]
new_list.append(row_dict)
return new_list
connection = cx_Oracle.connect('USERNAME','PASSWORD','HOSTNAME:PORTNUMBER/SERVICEID')
cur = connection.cursor()
printHeader = True
with open('nopnumber_names.csv')as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
lname = row['Last']
fname = row['First']
cur.execute('''select spriden_pidm as PIDM,
spriden_last_name as Last,
spriden_first_name as First,
spriden_mi as Middle,
spriden_ID as ID
from spriden
where upper(spriden_last_name) = '{0}'
and upper(spriden_first_name) = '{1}'
and spriden_change_ind is null'''.format(lname,fname)
)
# THIS RECORD RUNS FINE
# cur.execute('''select spriden_pidm as PIDM,
# spriden_ID as ID,
# spriden_last_name as Last,
# spriden_first_name as First
# from spriden
# where spriden_pidm = '{}'
# and spriden_change_ind is null'''.format(99999)
# )
data = rows_to_dict_list(cur)
for row in data:
print row
cur.close()
connection.close()
あなたがこのポストを作っていなかった場合、私はちょうどfnameの内の1つの、その名前に 'を持ってLNAMEの1(2人を発見したので、それらは間違いなく犯人いる今、私は疑問に思って。なぜそれが走ったのですが、プロセスが正常に完了したにもかかわらず出力がありませんでした! –