Попытка вставить escape-символ в таблицу приводит к предупреждению.
Например:
create table EscapeTest (text varchar(50));
insert into EscapeTest (text) values ('This is the first part \n And this is the second');
Выдает предупреждение:
WARNING: nonstandard use of escape in a string literal
( Используя PSQL 8.2 )
Кто-нибудь знает, как это обойти?
string
postgresql
escaping
Rjohnston
источник
источник
psql \copy
примечание: я обнаружил, что этоE'\n'
было записано в файл'\n'
не как символ новой строки, когда я использовал его в аргументе запроса мета-команды psql `\ copy '.Прохладно.
Я также нашел документацию по E:
http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS.
источник
Предупреждение выдается, поскольку вы используете обратную косую черту в своих строках. Если вы хотите избежать этого сообщения, введите команду «set standard_conforming_strings = on;». Затем используйте "E" перед строкой, включая обратную косую черту, которую postgresql должен интерпретировать.
источник
\copy xxxxxxxxxxx FROM /support01/db/data/xxxxxxxxx_7F.txt DELIMITER AS E'\x7f'
, я получаюparse error at "'\x7f'"
. Если у меня есть standard_conforming_strings = off; и используйте ту же команду, указанную выше, без E и кавычек ... (DELIMITER AS \ x7f) Я получаю предупреждающее сообщение, но данные загружаются нормально. Так что ваше утверждение может быть правильным, но не в этом случае.Я считаю крайне маловероятным, что Postgres усечет ваши данные при вводе - он либо отклоняет их, либо сохраняет как есть.
источник
character varying(4)
столбец с вводом «test» (два пробела после слова, 6 символов) обрезает пробелы и сохранит значение «test». Однако, как правило, вы можете предположить, что Postgres скорее ошибется, чем усечет ваши данные.Действительно глупый вопрос: вы уверены, что строка усекается, а не просто прерывается в указанном вами переносе строки (и, возможно, не отображается в вашем интерфейсе)? То есть, вы ожидаете, что поле будет отображаться как
или
Кроме того, какой интерфейс вы используете? Возможно ли, что что-то попутно съедает вашу обратную косую черту?
источник