私はPythonを初めて使用します。非常に大きなCSVファイル(4 GB)をループしてMSSQLサーバーに入れようとしています。現在の SQL ツールは役に立たないようです。
添付は私のスクリプトです。実行中に以下のエラーが発生します。どんな助けでも大歓迎です。
MSSQL データベース出口。ログインとパスワードは正しいです。Windows用のpymssqlモジュールもインストールしました
E:\Python27>python -x parsedata_mssql.py トレースバック (最新の呼び出しが最後): ファイル "parsedata_mssql.py"、28 行目、mdb.Error を除いて、e: NameError: 名前 'mdb' が定義されていません
以下は私のコードです:
#! /usr/bin/python
import csv
import sys
import _mssql
fields = [
(0, 'name'),
(1, 'street'),
(2, 'city'),
(3, 'state'),
(4, 'zip'),
(5, 'u1'),
(6, 'u2'),
(7, 'phone1'),
(8, 'phone2'),
(9, 'contactname'),
(10, 'relationship'),
(11, 'gender'),
(12, 'u3'),
(13, 'u4'),
(14, 'industry'),
]
try:
dbconn = _mssql.connect(server='localhost\SQLEXPRESS', user='sa',
password='password', database='2007usdata')
except mdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit(1)
with open('2007usdata.csv', 'rb') as infile:
reader = csv.reader(infile)
count = 0
for line in reader:
print "\n\nProcessing\n"
print line
if line:
column_names = ','.join([name for (id, name) in fields])
value_placeholders = (len(fields) - 1) * '%s, ' + '%s'
query = "INSERT INTO info(%s) VALUES(%s)" % (column_names, value_placeholders)
try:
dbconn.execute_non_query(query, line)
count += 1
dbconn.commit()
except mdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit(1)
dbconn.close()
print "\n\nDone: processed %d lines" % (count)