Как избежать кавычек в строках в vertica (vsql)?

Итак, мне нужно вставить некоторые значения в базу данных vertica (через vsql), которые могут содержать кавычки и всевозможные специальные символы. Но vertica, похоже, не понимает экранирование символов. Например:

rpt=> select "asdasda\"asdasdad" from some_table limit 1;
rpt"> ";
ERROR:  syntax error at or near "" from some_table limit 1;
"" at character 26
LINE 1: select "asdasda\"asdasdad" from some_table limit 1;

Это не оператор вставки, но вы должны уловить идею.


person Ivan P    schedule 24.02.2011    source источник


Ответы (1)


Ну, во-первых, я должен был использовать одинарные кавычки. Escape-последовательности работали в более ранних версиях (я полагаю, до 4.0), но теперь они отключены по умолчанию. Если вы не хотите настраивать параметры конфигурации базы данных, у вас есть два варианта.

Используйте синтаксис E':

select E'somethin\' here' from v_catalog.dual_p;

Или удвойте кавычки, которые нужно экранировать:

select 'somethin'' here' from v_catalog.dual_p;
person Ivan P    schedule 24.02.2011