sql >> データベース >  >> RDS >> Sqlserver

FIRSTROW パラメータを指定した SQL 一括挿入で次の行がスキップされる

    BULK INSERT で別の形式の行をスキップできるとは思わない /BCP .

    これを実行すると:

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

    私は得る:

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

    「|」が必要なようですヘッダーデータでも、それまでは最初の列に読み込まれるため、改行が最初の列に飲み込まれます。明らかに、フィールド ターミネータ パラメータを含めると、すべての行が MUST であることが期待されます

    前処理ステップで行を削除できます。もう 1 つの可能性は、完全な行のみを選択してから処理することです (ヘッダーを除外します)。または、SSIS など、これを処理できるツールを使用してください。



    1. Hibernate + c3p0 + MySqlが多数のスリープ接続を作成するのを防ぐにはどうすればよいですか?

    2. PostgreSQLでデータベースのサイズを取得する2つの方法

    3. android JDBC mysql javaコネクタapp:preDexDebug

    4. ORACLE SQL*Plusチュートリアル