-1

Python を使用してデータベース テーブルに値を挿入しようとしています。データベース サーバーに接続し、INSERT INTO sql ステートメントを実行しましたが、リストからデータベースに値を挿入する方法がわかりません。私の問題は単純で、for-in ループを正しく使用するだけだと思いますが、修正方法がわかりません。

助けが必要な行は、「for i in cur: cur.execute("INSERT INTO Events2013 VALUES (i))")」です。

ここに私のコードの一部があります:

import cx_Oracle
import fileDb
import g

fileDb.loadTeams()
fileDb.loadEvents()

for event in g.eventList:
    print '%s, %s, %s' % (event.eventName, event.eventType, event.dates)

dsn_tns = cx_Oracle.makedsn('hostname', 1521, 'orcl')
con = cx_Oracle.connect('std15', 'std15', dsn_tns)
cur = con.cursor()

for i in cur:
    cur.execute("INSERT INTO Events2013 VALUES (i))")

cur.execute("SELECT * FROM Events2013")
for result in cur:
    print result

cur.execute("COMMIT")
cur.close()
con.close()
4

1 に答える 1

2
cur.execute("INSERT INTO Events2013 VALUES (i))")

変数に自動的に展開されiません (リテラルとして渡されますi)

次のようなものが必要だと思います

for event in g.eventList:
    cur.execute("INSERT INTO Events2013 VALUES ('%s','%s','%s')" % (event.eventName, event.eventType, event.dates))
于 2013-10-27T03:39:33.587 に答える