Python(2.7)とsqlite(3)を使用して、クエリの結果をテーブルにコピーしようとしています。クエリの結果が非常に大きいため、「fetchmany」をバッチで使用したいと思います。クエリは正常に機能し、結果をバッチで取得します。問題は、結果をテーブルにコピーしようとすると、最初のバッチの後で停止することです。
問題はカーソルの位置にあると思います。
Pythonでカーソルを返すにはどうすればよいですか?
PS:私はここでカーソル(閉じる)に関する多くの投稿を見てきましたが、私の質問に対する答えを見ていません。また、私はPythonを初めて使用するので、質問が些細なことである場合はお詫びします。
ここに私のコードの断片:(例)
import sqlite3
dbLocation = 'P:/XXX/db1.db'
connection = sqlite3.connect(dbLocation)
cursor = connection.cursor()
strSQLStatement = """
SELECT
whatever1,
whaterver2
from wherever
LIMIT 10"""
cursor.execute(strSQLStatement)
#the following codes works
# printing the 10 results
while True:
results = cursor.fetchmany(2)
if not results:
break
print results
#the following codes does NOT work
# Only 2 results are processed
while True:
results = cursor.fetchmany(2)
if not results:
break
print results
cursor.executemany ('INSERT INTO NewTable (?,?)',results)
connection.commit()