Próba wstawienia znaku zmiany znaczenia do tabeli powoduje wyświetlenie ostrzeżenia.
Na przykład:
create table EscapeTest (text varchar(50));
insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Powoduje ostrzeżenie:
WARNING: nonstandard use of escape in a string literal
( Przy użyciu PSQL 8.2 )
Czy ktoś wie, jak to obejść?
string
postgresql
escaping
rjohnston
źródło
źródło
psql \copy
uwaga: stwierdziłem, żeE'\n'
zostało to zapisane w pliku'\n'
zamiast jako nowa linia, kiedy użyłem go w argumencie zapytania do meta-polecenia psql `\ copy '.Chłodny.
Znalazłem też dokumentację dotyczącą E:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS
źródło
Ostrzeżenie jest generowane, ponieważ używasz odwrotnych ukośników w łańcuchach. Jeśli chcesz uniknąć tego komunikatu, wpisz polecenie „set standard_conforming_strings = on;”. Następnie użyj „E” przed łańcuchem, włączając ukośniki odwrotne, które postgresql ma zinterpretować.
źródło
\copy xxxxxxxxxxx FROM /support01/db/data/xxxxxxxxx_7F.txt DELIMITER AS E'\x7f'
, otrzymamparse error at "'\x7f'"
. Jeśli mam standard_conforming_strings = off; i użyj tego samego polecenia powyżej bez E i cudzysłowów ... (DELIMITER AS \ x7f) Otrzymuję komunikat ostrzegawczy, ale dane ładują się dobrze. Więc twoje stwierdzenie może być poprawne, ale nie w tym przypadku.Uważam, że jest bardzo mało prawdopodobne, aby Postgres obcinał dane wejściowe - albo je odrzuca, albo przechowuje tak, jak jest.
źródło
character varying(4)
kolumna, która ma dane wejściowe „test” (dwie spacje po słowie, 6 znaków) obetnie spacje i zapisze wartość „test”. Z reguły jednak można założyć, że Postgres będzie raczej mylić, niż obcinać dane.Naprawdę głupie pytanie: czy jesteś pewien, że ciąg jest obcinany, a nie tylko przerywany w określonym przez ciebie podziale linii (i prawdopodobnie nie pojawia się w twoim interfejsie)? To znaczy, czy spodziewasz się, że pole będzie wyświetlane jako
lub
Jakiego interfejsu używasz? Czy to możliwe, że coś po drodze zjada twoje ukośne ukośne?
źródło