2017-05-31 6 views
1

私はPostgreSQLデータベーステーブルにTXTファイルをインポートしようとしていますが、私はエラーを取得しています:PostgreSQLの - ERROR:コラム "XX" SQL状態のための欠落データ:22P04

ERROR:

missing data for column "bts_name" SQL state: 22P04

私のコードは:

COPY indicadores2g (
    Daily, 
    BTS_NAME, 
    SITE_CODE 
) 
FROM 'C:\Users\Public\Documents\GEO_2G_CELL.txt' 
WITH CSV HEADER DELIMITER ' ' NULL AS '' ; 

私は問題がtxtファイルにあることを知っています。 txtファイルでは、最後の2行は空白です(例)。削除するとSQLは問題なく実行されます。 enter image description here 私の問題は毎日インポートする必要があることです。 SQLコードを問題なく実行するためのルールはありますか?

問題なく実行するもう1つの方法は、ExcelでTXTを開いてCSV形式で保存することです。これを自動的に行うことはできますか?

+0

私は、bts_nameにnullが設定されていない既存のテーブルであることを前提としています。代わりに、データを一時テーブルにコピーして、データのロードを制限してから、選択して除外しますnulls。テンポラリテーブルを削除します。またはnullを許可するように表を変更し、挿入後にこれらのレコードを削除してから、not null値を再度アクティブにします。私はそれが既存のテーブル構造を変更する必要はないので、一時テーブルを好む。 – xQbert

答えて

1

は(例えばinpfixer.batための)単純なバッチを作成する:そして

@echo off 
for /f "delims=" %%a in (%1) do (
    echo %%a 
) 

COPY indicadores2g (
    Daily, 
    BTS_NAME, 
    SITE_CODE 
) 
FROM PROGRAM 'inpfixer.bat C:\Users\Public\Documents\GEO_2G_CELL.txt' 
WITH CSV HEADER DELIMITER ' ' NULL AS '' ; 

を確かに、inpfixer.batPATHによって利用可能であるべきです。

免責条項:ワインを試験しました。

関連する問題