Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapisywanie pliku csv do bazy danych SQL Server za pomocą Pythona

Rozważ dynamiczne tworzenie zapytania, aby upewnić się, że liczba symboli zastępczych jest zgodna z formatem tabeli i pliku CSV. Wtedy wystarczy tylko upewnić się, że tabela i plik CSV są poprawne, zamiast sprawdzać, czy wpisałeś wystarczającą ilość ? symbole zastępcze w kodzie.

Poniższy przykład zakłada

  1. Plik CSV zawiera nazwy kolumn w pierwszym wierszu
  2. Połączenie jest już zbudowane
  3. Nazwa pliku to test.csv
  4. Nazwa tabeli to MyTable
  5. Python 3
...
with open ('test.csv', 'r') as f:
    reader = csv.reader(f)
    columns = next(reader) 
    query = 'insert into MyTable({0}) values ({1})'
    query = query.format(','.join(columns), ','.join('?' * len(columns)))
    cursor = connection.cursor()
    for data in reader:
        cursor.execute(query, data)
    cursor.commit()

Jeśli w pliku nie ma nazw kolumn:

...
with open ('test.csv', 'r') as f:
    reader = csv.reader(f)
    data = next(reader) 
    query = 'insert into MyTable values ({0})'
    query = query.format(','.join('?' * len(data)))
    cursor = connection.cursor()
    cursor.execute(query, data)
    for data in reader:
        cursor.execute(query, data)
    cursor.commit()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zbiorcze wstawianie częściowo cytowanego pliku CSV w programie SQL Server

  2. Jak dodać niestandardowe atrybuty do ciągu połączenia SQL?

  3. Pierwszeństwo typów danych w SQL Server

  4. Wyniki dynamicznego SQL w tabeli tymczasowej w procedurze SQL Stored

  5. Jak podzielić ciąg po określonym znaku w SQL Server i zaktualizować tę wartość do określonej kolumny?