私は、テキストファイルの処理を行うpythonスクリプトを作成しています。そのプロセスの一環として、タブ区切りファイルの各行をローカルのMS SQL Server(2008)テーブルにインポートする必要があります。私はpyodbcを使用しており、私はこれを行う方法を知っています。しかし、私はそれを実行するための最良の方法について質問があります。PythonでSQL Serverにテキストファイルをインポートする
ファイルの各行に対してcursor.execute(myInsertSQL)を作成してループします。すべてのレコードがループされるまで(つまり、ループの後にcommit()を実行し、個々の実行後にループ内にはない)まで、ステートメントをコミットするのを待っている問題は誰にも見えますか?私が尋ねる理由は、いくつかのファイルには5000行以上のファイルがあるということです。私は "それらを保存する"と一度にすべての5000をコミットしようとすると問題を引き起こすかどうかはわかりませんでした。
私はかなり新しいpythonです。だから私はまだこれらの問題のすべてを知っていません。
ありがとうございました。
"「それらを保存して」5000を一度にコミットしようとすると問題が発生するかどうかはわかりませんでした。どのような "問題"を想像していますか?あなたはそれを試しましたか?それは何をしたのですか?ループ内からループの最後にコミットを移動することは、簡単に両方を行うことができ、学習した内容を含めることができる簡単な変更です。 –
私は小さなセットで試してみましたが、問題はありませんでした。私が懸念していたのは、私がテストしていたときにはうまくいかないということではなく、おそらく天井がある場合には、私が注意を払うべきだということでした。ファイルはサイズが変わり、5000を超える可能性があります。私が書いているスクリプトは、スケジュールバッチの一部として実行され、私は問題にぶつからないようにしています。お勧めします。 –
sqlserverのpythonインターフェイスは '.executemany'メソッドを提供しますか? –