2017-01-13 7 views
0

현재 pyodbc를 사용하여 .csv의 데이터를 Azure SQL Server 데이터베이스에 삽입하려고합니다. Stack Overflow에서이 구문의 대다수를 발견했지만 어떤 이유로 든 두 가지 다른 오류 중 하나가 계속 발생합니다.Python PYDOBC 매개 변수가있는 SQL Server DB에 삽입

1) 다음 코드를 사용할 때마다 'SQL에 0 개의 매개 변수 표식이 있지만 7 개의 매개 변수가 제공되었습니다.'라는 오류가 발생합니다. 위해

import pyodbc 
import csv 
cnxn = pyodbc.connect('driver', user='username', password='password', database='database') 
cnxn.autocommit = True 
cursor = cnxn.cursor() 
csvfile = open('CSV File') 
csv_data = csv.reader(csvfile) 
SQL="insert into table([Col1],[Col2],[Col3],[Col4],[Col5],[Col6],[Col7]) values ('?','?','?','?','?','?','?')" 
for row in csv_data: 
    cursor.execute(SQL, row) 
time.sleep(1) 
cnxn.commit() 
cnxn.close() 

2) 그 오류를 제거하기 위해, 나는 추가하여 매개 변수 마커를 정의하고 '=을?' ProgrammingError : ('42000'[42000] [Microsoft] [ODBC SQL Server Driver] [SQL Server]) 구문이 잘못되었습니다. = ').

import pyodbc 
import csv 
cnxn = pyodbc.connect('driver', user='username', password='password', database='database') 
cnxn.autocommit = True 
cursor = cnxn.cursor() 
csvfile = open('CSV File') 
csv_data = csv.reader(csvfile) 
SQL="insert into table([Col1]=?,[Col2]=?,[Col3]=?,[Col4]=?,[Col5]=?,[Col6]=?,[Col7]=?) values ('?','?','?','?','?','?','?')" 
for row in csv_data: 
    cursor.execute(SQL, row) 
time.sleep(1) 
cnxn.commit() 
cnxn.close() 

이것은 내가 모든 스택 오버플로를 통해 검색하고 해결책을 찾을 수가 없어,에 문제가 haveing ​​오전 주요 오류입니다. 나도이 오류가 나는, 아마 아주 사소한 그러나입니다 파이썬에 새로운 오전 크게 어떤 조언이나 도움을 주셔서 감사합니다. SQL 서버가 하나의 문으로 전체 CSV 파일을 가져올 수 있기 때문에

답변

3

이 바퀴의 재발 명이다.

BULK INSERT my_table FROM 'CSV_FILE' 
WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n'); 

pyton을 사용하여 지속하려면 pyodbc!로 위의 쿼리를 실행하십시오!

당신은 여전히 ​​문 수천 대신 '이 sorrounding와 것을 한

SQL="insert into table([Col1],[Col2],[Col3],[Col4],[Col5],[Col6],[Col7]) values (?,?,?,?,?,?,?)" 

메모를 실행하고 싶다면? 거기 있으면 안된다.

+0

끝내 주셔서 감사합니다! – ls101