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

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-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://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