Я хочу выполнить запрос с ltree парами в plpgsql функции ... но я немогу понять, как использовать кавычки в этой функции ...Использования ltree запроса в plpgsql функции как пары в PostgreSQL
CREATE OR REPLACE FUNCTION f_select(BIGINT) RETURNS setof categories AS
$$
DECLARE
s_cat ALIAS FOR $1;
queryText TEXT;
result categories%ROWTYPE;
BEGIN
queryText := 'SELECT * FROM categories WHERE cat_tree ~ \'*.\'|| s_cat::text ||\'.*\'';
FOR result IN EXECUTE queryText
LOOP
RETURN NEXT result;
END LOOP;
RETURN;
END
$$
LANGUAGE plpgsql;
Как это сделать ???
После выполнения этого кода в PSQL я получаю сообщение об ошибке:
ERROR: syntax error at or near "."
LINE 10: ... := 'SELECT * FROM categories WHERE cat_tree ~ \'*.\'|| s_ca...
Заключительный рабочий verison:
CREATE OR REPLACE FUNCTION f_select(BIGINT) RETURNS setof categories AS
$$
DECLARE
s_cat ALIAS FOR $1;
queryText TEXT;
result categories%ROWTYPE;
BEGIN
queryText := 'SELECT * FROM categories WHERE cat_tree ~ ''' || ('*.'|| s_cat::text || '.*')::lquery || '''';
FOR result IN EXECUTE queryText
LOOP
RETURN NEXT result;
END LOOP;
RETURN;
END
$$
LANGUAGE plpgsql;
Спасибо, но Don 'T помочь мне, я попробовать его, прежде чем комментировать buuut ... – dezconnect
Хорошо, вы можете представить структуру таблицы и некоторые примеры данных, например, как SQL скрипку (HTTP: // sqlfiddle.com/)? – zero323
Способ цитирования одной цитаты - добавить еще одну цитату. Не беспокойтесь о обратной косой чертой, они устарели. –