Witam.
Mam utworzoną w Postgresie tabelę o nazwie 'dane', w której mam m.in. kolumnę 'numer_id'. Do tej kolumny chcę wprowadzać integery. Jako default Postgres wstawia do tej kolumny wartość NULL.
Mam plik dane.txt, w którym wartości przynależące do kolejnych kolumn są oddzielane znakiem '|'. W miejscach gdzie nie ma wartości dla kolumny 'numer_id' jest pusto - miejsce takie wygląda tak: '||'.
Przy stosowaniu "COPY dane FROM 'dane.txt' WITH DELIMITER '|' " otrzymuję: "ERROR: invalid input syntax for integer: "" "
Jak zrobić żeby pobrać z pliku txt wartości do tej kolumny jako NULL?
edit:
Zaraz po wrzuceniu posta mnie oświeciło. Co prawda to takie chwilowe rozwiązanie 'na szybko', ale działa:
Otworzyłam notatnik i przez 'Zamień' podmieniłam znaki '||' na |\N|'. \N postgres odczytuje jako NULL, więc z wczytaniem wartości z pliku już nie było problemu. Podmieniło mi to też 'potrzebne' wartości '' na NULL, ale to już z poziomu postgresa łatwo można przywrócić, chociaż bywa sporo zabawy.
Ale mimo wszystko - gdyby ktoś znalazł jakieś rozwiązanie bez kombinacji na poziomie pliku txt (poprzez podmienianie totalnie wszystkich danych, włącznie z innymi kolumnami) to byłabym bardzo wdzięczna za opisanie rozwiązania. :)