query_to_xml в where не работает поле типа char, where data='130809' не понимает прога

Изображение Izver

Добрый день.

Есть базе представление view_otgruz (datd,kpot,suma,...,nd)

В нем находятся данные за 2 года.

Мне надо скопировать в xml файл период (период задается функцией).

Для пробы (не в функции), я создал такой запрос

SELECT query_to_xml ('select datd,kpot,suma,...,nd from view_otgruz where datd between ''130801'' and ''130802''',true,false,'')

Но проблема в том, что вместо '130801' будет переменная.

c_datn=to_char(now()- interval '2 month','yymmdd');
c_datk=to_char(now(),'yymmdd');
 
SELECT query_to_xml ('select datd,kpot,suma,...,nd from view_otgruz where datd between ''c_datn'' and ''c_datk''',true,false,'') 

результат

<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</table>

такой вариант

SELECT query_to_xml ('select datd,kpot,suma,...,nd from view_otgruz where datd between '''||c_datn||''' and '''||c_datk||'''',true,false,'') 

дает ошибку
ERROR: there is no parameter $1
LINE 1: ...d FROM xml_otgruz_export where datd between '''|| $1 ||''' a...

В чем проблема не понимаю. Помогите.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Так пробовали через функцию и

Так пробовали через функцию и сделать, передав ей как параметры ваш период?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023