A tentativa de inserir um caractere de escape em uma tabela resulta em um aviso.
Por exemplo:
create table EscapeTest (text varchar(50));
insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Produz o aviso:
WARNING: nonstandard use of escape in a string literal
( Usando PSQL 8.2 )
Alguém sabe como contornar isso?
string
postgresql
escaping
Rjohnston
fonte
fonte
psql \copy
observação: descobri que eleE'\n'
foi gravado no arquivo em'\n'
vez de em uma nova linha quando o usei no argumento de consulta para o meta-comando `\ copy 'do psql.Legal.
Também encontrei a documentação sobre o E:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax Budapical.html#SQL-SYNTAX-STRINGS
fonte
O aviso é emitido porque você está usando barras invertidas em suas strings. Se você quiser evitar a mensagem, digite este comando "set standard_conforming_strings = on;". Em seguida, use "E" antes de sua string incluindo barras invertidas que você deseja que o postgresql interprete.
fonte
\copy xxxxxxxxxxx FROM /support01/db/data/xxxxxxxxx_7F.txt DELIMITER AS E'\x7f'
, eu obtenhoparse error at "'\x7f'"
. Se eu tiver standard_conforming_strings = off; e usar o mesmo comando acima sem o E e as aspas ... (DELIMITER AS \ x7f) Recebo a mensagem de aviso, mas os dados carregam bem. Portanto, sua declaração pode estar correta, mas não neste caso.Acho altamente improvável que o Postgres trunque seus dados na entrada - ele os rejeita ou os armazena como estão.
fonte
character varying(4)
coluna com a entrada "teste" (dois espaços após a palavra, 6 caracteres) truncará os espaços e armazenará o valor "teste". Como regra geral, entretanto, você pode assumir que o Postgres irá gerar um erro em vez de truncar seus dados.Pergunta realmente estúpida: tem certeza de que a string está sendo truncada, e não apenas quebrada na quebra de linha que você especificar (e possivelmente não está aparecendo em sua interface)? Ou seja, você espera que o campo seja mostrado como
ou
Além disso, qual interface você está usando? É possível que algo ao longo do caminho esteja engolindo suas barras invertidas?
fonte