Я пытаюсь построить функцию, которая возвращает некоторый текст. Текст включает в себя BEGIN
заявление, в котором, кажется, вызывает ошибку:Как избежать синтаксической ошибки при возврате текста, который включает в себя инструкцию BEGIN?
CREATE OR REPLACE FUNCTION create_trigger() RETURNS TEXT AS $$
BEGIN
RETURN
'CREATE OR REPLACE FUNCTION update_view() RETURNS trigger AS $$
BEGIN -- error is near this begin
IF TG_OP = ''INSERT'' THEN DO SOMETHING;
ELSIF TG_OP = ''UPDATE'' THEN DO SOMETHING;
END IF;
RETURN NEW;
END;
$$ language plpgsql';
END;
$$ language plpgsql
Я получаю синтаксическую ошибку рядом со словом BEGIN
в обратном заявлении и не понимаю, почему, так как я только пытаюсь вернуть текст , Это потому, что plpgsql
распознает слово BEGIN
, даже если оно находится в строковой части кода?
Не могли бы вы попробовать добавить ',' 'после END;' – McNets
Не работает (отредактировано сообщение с этой модификацией) – kaycee
Начало не вызывает ошибки, это вложенный '$$'. Используйте другой разделитель для цитируемой функции. – alzee