Скрипт для просмотра запросов и экспорта результатов в Excel - PullRequest
0 голосов
/ 24 мая 2018

У меня есть следующий скрипт, который я использую для циклического выполнения запроса и экспорта результатов в файл Excel.

begin
    for months in 0..12 loop
      data_dump( query_in     => 'select count(*) from reservation where trunc(update_date) between (select add_months(TRUNC(SYSDATE), -(months) ) from dual) and (select add_months(TRUNC(SYSDATE),-(months+1)) from dual)',
                               file_in      => 'excel_'||months||'.csv',
                              directory_in => 'C:\Users\Administrator\Desktop\test',
                              delimiter_in => '|' );
     end loop;
end;

data_dump - это процедура, которая экспортирует результаты в файл Excel.

Я пытаюсь сделать формулу, которую я использую, динамической, как показано ниже:

(select add_months(TRUNC(SYSDATE), -(months) ) from dual)

переменная months происходит из цикла, но когда я запускаю запрос, он оборачивается ошибками.

Будет полезна помощь с синтаксисом.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

попробуйте месяцы, такие как '' || месяцы || '', чтобы получить значения динамически

0 голосов
/ 24 мая 2018

Я считаю, что проблема здесь:

'select count(*) 
from reservation 
where trunc(update_date) between 
(select add_months(TRUNC(SYSDATE), -(months) ) from dual) 
and (select add_months(TRUNC(SYSDATE),-(months+1)) from dual)'

В вашем случае «месяцы» - это просто текст.Вам нужно изменить выражение следующим образом:

'select count(*) 
from reservation 
where trunc(update_date) between 
(select add_months(TRUNC(SYSDATE), -('|| months ||') ) from dual) 
and (select add_months(TRUNC(SYSDATE),-('|| months+1 ||')) from dual)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...