PostgreSQL | Как экранировать одинарные кавычки в функции внутри EXECUTE в PL/pgSQL? — efim360.ru

PostgreSQL | Как экранировать одинарные кавычки в функции внутри EXECUTE в PL/pgSQL?

Чтобы изолировать одинарную кавычку внутри всего выражения EXECUTE и не использовать её в качестве синтаксиса самого EXECUTE, нужно дописать к исключаемой одинарной кавычке ещё одну такую же одинарную кавычку.

Синтаксический анализатор выражения EXECUTE сможет правильно понять вас.

 

Если в обычном SQL-запросе есть выражение:

COMMENT ON COLUMN b.t_d_55.idp
IS 'Идентификатор пути';

То в функции с применением EXECUTE нужно сделать так:

EXECUTE 'COMMENT ON COLUMN b.t_d_55.idp
IS ''Идентификатор пути'';'

 

Обратите внимание!!! В записи ''Идентификатор пути'' - это 4 одинарные кавычки, а не две двойные.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdmin - https://www.pgadmin.org

Официальный сайт СУБД PostgreSQL - https://www.postgresql.org

Раздел "43.5.4. Выполнение динамически формируемых команд" - https://postgrespro.ru/docs/postgresql/14/plpgsql-statements#PLPGSQL-STATEMENTS-EXECUTING-DYN

Раздел "44.12.1. Обработка кавычек" - https://postgrespro.ru/docs/enterprise/14/plpgsql-development-tips#PLPGSQL-QUOTE-TIPS