sql >> Database >  >> RDS >> Sqlserver

CSV-bestand importeren in SQL Server

Op basis van SQL Server CSV-import

1) De CSV-bestandsgegevens kunnen , . hebben (komma) ertussen (bijvoorbeeld:beschrijving), dus hoe kan ik deze gegevens importeren?

Oplossing

Als je , (komma) als scheidingsteken, dan is er geen manier om onderscheid te maken tussen een komma als veldterminator en een komma in uw gegevens. Ik zou een andere FIELDTERMINATOR gebruiken zoals || . De code zou er zo uitzien en deze kan komma's en een enkele schuine streep perfect verwerken.

2) Als de client de csv vanuit Excel maakt, worden de gegevens met komma's ingesloten in " ... " (dubbele aanhalingstekens) [zoals het onderstaande voorbeeld] dus hoe kan de import dit aan?

Oplossing

Als u BULK-insert gebruikt, is er geen manier om dubbele aanhalingstekens te verwerken, gegevens worden met dubbele aanhalingstekens in rijen ingevoegd. Nadat u de gegevens in de tabel hebt ingevoegd, kunt u die dubbele aanhalingstekens vervangen door ' '.

update table
set columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','')

3) Hoe houden we bij of sommige rijen slechte gegevens bevatten, welke import wordt overgeslagen? (slaat import niet rijen over die niet kunnen worden geïmporteerd)?

Oplossing

Om rijen af ​​te handelen die niet in de tabel zijn geladen vanwege ongeldige gegevens of indeling, kunt u de ERRORFILE-eigenschap gebruiken, de naam van het foutbestand specificeren, het zal de rowshaving-fout naar het foutbestand schrijven. code eruit zou moeten zien.

BULK INSERT SchoolsTemp
    FROM 'C:\CSVData\Schools.csv'
    WITH
    (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv',
    TABLOCK
    )


  1. Huidige datum en tijd invoegen in SQLite-database

  2. Hoe voeg je PostgreSQL-stuurprogramma toe als afhankelijkheid in Maven?

  3. Hoe NVL() werkt in MariaDB

  4. Hoe schakel ik php in om met postgresql te werken?