2012-04-25 17 views
0

ファイルをあるディレクトリから別のディレクトリにコピーし、そのファイル名をdocアーカイブPostgreSQLのテーブルにコピーするPythonスクリプトを作成しています。私は受信エラーは以下の通りです:Pythonの名前付きカーソルでexcute()を複数回呼び出す

 cursor = conn.cursor('cur', cursor_factory=psycopg2.extras.DictCursor) 
    cursor.execute('SELECT * FROM doc_archive.table LIMIT 4821') 
     row_count = 0 
    for row in cursor: 
     row_count += 1 
     print "row: %s %s\r" % (row_count, row), 
     pathForListFiles = srcDir 
    files = os.listdir(pathForListFiles) 
    for file in files: 
     print file 
     try: 
      # Perform an insert with the docid 
      cursor.execute("INSERT INTO doc_archive.field_photo_vw VALUES) 

答えて

1

これは実際のコードです:複数回

以下

私のコードがされるという名前のカーソルの

CAMT」コールexcute()?あなたは2回目の実行で比類のない引用符を持っています。結果を反復処理するとき

、私は通常、問題なく

for var in range(int(cursor.rowcount)): 
    row = cursor.fetchone() 

を使用しています。

for var in cursor: 

私には間違いがあります。

results = cur.fetchall() 
for var in enumerate(results): 

基本的に同じものです。しかし、結果の最初のセットを反復しながら別の実行を行う必要がある場合に備えて、カーソルを閉じることができます。一般的に、私はちょうどそれらのインスタンスで別のカーソルを宣言します。

どちらの場合でも、現在のコードは実行結果をフェッチしていないようです。そのデータを処理する必要がある場合は重要です。

+0

これらのエラーを検出していただきありがとうございます。私は上記のコードと一緒にcursor.executemany関数を使用しており、その部分が動作しているようです。 –

関連する問題