powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнить запрос на основе значения переменной
7 сообщений из 7, страница 1 из 1
Выполнить запрос на основе значения переменной
    #39320866
dow1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DEFINE businessdate = '2016-10-03';
DEFINE exportpath = 'E:\';

SET SERVEROUTPUT ON;
set head OFF;
set NEWP NONE;
SET FEEDBACK OFF;
SET TERM OFF;
SET SHOWMODE OFF;
SET VERIFY OFF;
set PAGESIZE 9000;
set LINESIZE 256;
set COLSEP ;;

col output_m new_value output_m noprint;

select
case when ('&businessdate' like '%CURRDAY%')
then ('&exportpath\' || '&property' || '_Time_Export_' || to_char(max(bussines_date), 'yyyy_mm_dd') || '.csv')
when ('&businessdate' like '%PREVDAY%')
then ('&exportpath\' || '&property' || '_Time_Export_' || to_char(max(bussines_date)-1, 'yyyy_mm_dd') || '.csv')
else ('&exportpath\' || '&property' || '_Time_Export_' || replace('&businessdate','-','_') || '.csv')
end
output_m from registration;

spool &output_m;

select
'''' || RVC.name || '''' || ';' ||
'''' || cards.zip_code || '''' || ';' ||
'''' || cards.last_name || '''' || ';' ||
'''' || cards.first_name || '''' || ';' ||
'''' || to_char(bussines_date, 'YYYY-MM-DD') || '''' || ';' ||
'''' || to_char(clockin, 'YYYY-MM-DD HH24:MI:SS') || '''' || ';' ||
'''' || to_char(clockout, 'YYYY-MM-DD HH24:MI:SS') || '''' || ';' ||
'''' || (ROUND(CLOCKOUT,'MI')- ROUND(CLOCKIN,'MI')) * 24* 60 || '''' || ';' ||
'''' || 'D' || ''''
from registration where to_char(trunc(bussines_date), 'YYYY-MM-DD') = '&businessdate'


spool off;

exit;



В таком виде работает, то есть подставляется значение даты
необходимо сделать
DEFINE businessdate='PREVIOUS_DAY'

Если businessdate='PREVIOUS_DAY' тогда результат запросы select sysdate -1 from dual должен подставляться в значение businessdate
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320886
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dow1985Если businessdate='PREVIOUS_DAY' тогда результат запросы select sysdate -1 from dual должен подставляться в значение businessdateАналогично как и output_m
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320890
dow1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
ТО есть добавить вот такой блок?


col output_m new_value output_m noprint;

select
case when ('&businessdate' like '%PREVIOUS_DAY%')
then select sysdate-1 from dual
end
output_m from registration;

spool &output_m;
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320913
dow1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или прописать нужно внутрь 1-го ?
col output_m new_value output_m noprint;

select
case when ('&businessdate' like '%CURRDAY%')
then ('&exportpath\' || '&property' || '_Time_Export_' || to_char(max(bussines_date), 'yyyy_mm_dd') || '.csv')

when ('&businessdate' like '%PREVDAY%')
then ('&exportpath\' || '&property' || '_Time_Export_' || to_char(max(bussines_date)-1, 'yyyy_mm_dd') || '.csv')
and &businessdate=select to_char(max(bussines_date)-1, 'yyyy_mm_dd')
else ('&exportpath\' || '&property' || '_Time_Export_' || replace('&businessdate','-','_') || '.csv')
end
output_m from registration;

spool &output_m;
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320927
dow1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил, но не работает :(
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320946
dow1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕМ спасибо заработало)))

col businessdate new_value businessdate noprint;

select case
when upper('&businessdate') = 'PREVIOUS_DAY' then to_char(trunc(max(bussines_date)-1), 'YYYY-MM-DD')
else '&businessdate'
end as businessdate
from registration;
...
Рейтинг: 0 / 0
Выполнить запрос на основе значения переменной
    #39320948
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dow1985ТО есть добавить вот такой блок?Нет.dow1985Добавил, но не работает :(Это означает, что ты вообще не понимаешь, как это всё работает. Но хочешь, чтобы тебе разжевали и написали код за тебя?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выполнить запрос на основе значения переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]