sql >> Databáze >  >> RDS >> Sqlserver

SQL Hromadné vložení s parametrem FIRSTROW přeskočí následující řádek

Nemyslím si, že můžete přeskakovat řádky v jiném formátu pomocí BULK INSERT /BCP .

Když spustím toto:

TRUNCATE TABLE so1029384

BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
ROWTERMINATOR = '\n'
)

SELECT * FROM so1029384

Chápu:

col1                                               col2                                               col3
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
***A NICE HEADER HERE***
0000001234               SSNV                                               00013893-03JUN09
0000005678                                         ABCD                                               00013893-03JUN09
0000009112                                         0000                                               00013893-03JUN09
0000009112                                         0000                                               00013893-03JUN09

Vypadá to, že to vyžaduje '|' dokonce i v datech záhlaví, protože to načte až do prvního sloupce - spolkne nový řádek do prvního sloupce. Je zřejmé, že pokud zahrnete parametr ukončení pole, očekává se, že každý řádek MUSÍ mít jeden.

Řádek můžete odstranit pomocí kroku předběžného zpracování. Další možností je vybrat pouze celé řádky a následně je zpracovat (kromě hlavičky). Nebo použijte nástroj, který to zvládne, jako je SSIS.



  1. Jak nainstalovat Lighttpd s PHP, MariaDB a PhpMyAdmin v Ubuntu

  2. Chyba Oracle Apex 20.1:Chyba při zpracování ověření

  3. Jak mohu získat hash celé tabulky v postgresql?

  4. pgadmin4:aplikační server postgresql nelze kontaktovat.