powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как в блоке pl/sql в разделе declare прописать выражение в переменную
5 сообщений из 5, страница 1 из 1
Как в блоке pl/sql в разделе declare прописать выражение в переменную
    #39555183
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DECLARE
  v_LBD varchar2(30):= (select max(run_date) from mousetrap.zrulunmatch_test@TO_MST);
BEGIN
update fdd.ul_instruments set ACTIVE = 'N', END_DT = null WHERE  feeder_source_system = 'INUL' and rowid in (
Select ROWID
---a.SEQ_NUM, a.MAX_SEQ_NUM, a.ACTIVE, a.inst_id, a.inst_src, a.ulinstid, a.ulinstsrc  
 from 
(
Select A1.*, MAX(SEQ_NUM) OVER (PARTITION BY INST_ID, INST_SRC, ULINSTID, ULINSTSRC ) max_seq_num FROM fdd.ul_instruments A1
              WHERE  feeder_source_system = 'INUL'
              and start_dt<=v_LBD AND NVL(END_DT,'99999999') >= v_LBD
)  a
WHERE a.SEQ_NUM=a.MAX_SEQ_NUM
                                AND ACTIVE='Y' 
and exists 
(
Select 1 from mousetrap.zrulunmatch_test@TO_MST b  where b.MMTCH_F ='UNMATCH_FDD' 
and b.FEEDER_SOURCE_SYSTEM = 'INUL' and b.run_date = v_LBD 
and a.inst_id = b.INST_ID and a.inst_src = b.inst_src and a.ulinstid = b.ulinstid and a.ulinstsrc =  b.ulinstsrc
) 
); 
COMMIT;   
END;
...
Рейтинг: 0 / 0
Как в блоке pl/sql в разделе declare прописать выражение в переменную
    #39555189
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
DECLARE
  v_LBD varchar2(30); 
BEGIN
  select max(run_date) into v_LBD from mousetrap.zrulunmatch_test@TO_MST;

update fdd.ul_instruments set ACTIVE = 'N', END_DT = null WHERE  feeder_source_system = 'INUL' and rowid in (
Select ROWID
---a.SEQ_NUM, a.MAX_SEQ_NUM, a.ACTIVE, a.inst_id, a.inst_src, a.ulinstid, a.ulinstsrc  
 from 
(
Select A1.*, MAX(SEQ_NUM) OVER (PARTITION BY INST_ID, INST_SRC, ULINSTID, ULINSTSRC ) max_seq_num FROM fdd.ul_instruments A1
              WHERE  feeder_source_system = 'INUL'
              and start_dt<=v_LBD AND NVL(END_DT,'99999999') >= v_LBD
)  a
WHERE a.SEQ_NUM=a.MAX_SEQ_NUM
                                AND ACTIVE='Y' 
and exists 
(
Select 1 from mousetrap.zrulunmatch_test@TO_MST b  where b.MMTCH_F ='UNMATCH_FDD' 
and b.FEEDER_SOURCE_SYSTEM = 'INUL' and b.run_date = v_LBD 
and a.inst_id = b.INST_ID and a.inst_src = b.inst_src and a.ulinstid = b.ulinstid and a.ulinstsrc =  b.ulinstsrc
) 
); 
COMMIT;   
END;
...
Рейтинг: 0 / 0
Как в блоке pl/sql в разделе declare прописать выражение в переменную
    #39555202
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  1  declare
  2   function f return number;
  3   v int :=f ;
  4   function f return number is
  5     n int;
  6   begin
  7    select count(*) into n from emp;
  8    return n;
  9   end;
 10  begin
 11   null;
 12* end;
SQL> /

PL/SQL procedure successfully completed.



.....
stax
...
Рейтинг: 0 / 0
Как в блоке pl/sql в разделе declare прописать выражение в переменную
    #39555591
Coding Guidelines
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x17.mstu,

Trivadis PL/SQL & SQL Coding Guidelines
2160 Avoid initializing variables using functions in the declaration section.
Reason: If your initialization fails, you will not be able to handle the error in your exceptions block
...
Рейтинг: 0 / 0
Как в блоке pl/sql в разделе declare прописать выражение в переменную
    #39555593
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
DECLARE
  v_LBD varchar2(30); 
BEGIN
  select max(run_date) into v_LBD from mousetrap.zrulunmatch_test@TO_MST;

update fdd.ul_instruments set ACTIVE = 'N', END_DT = null WHERE  feeder_source_system = 'INUL' and rowid in (
Select ROWID
---a.SEQ_NUM, a.MAX_SEQ_NUM, a.ACTIVE, a.inst_id, a.inst_src, a.ulinstid, a.ulinstsrc  
 from 
(
Select A1.*, MAX(SEQ_NUM) OVER (PARTITION BY INST_ID, INST_SRC, ULINSTID, ULINSTSRC ) max_seq_num FROM fdd.ul_instruments A1
              WHERE  feeder_source_system = 'INUL'
              and start_dt<=v_LBD AND NVL(END_DT,'99999999') >= v_LBD
)  a
WHERE a.SEQ_NUM=a.MAX_SEQ_NUM
                                AND ACTIVE='Y' 
and exists 
(
Select 1 from mousetrap.zrulunmatch_test@TO_MST b  where b.MMTCH_F ='UNMATCH_FDD' 
and b.FEEDER_SOURCE_SYSTEM = 'INUL' and b.run_date = v_LBD 
and a.inst_id = b.INST_ID and a.inst_src = b.inst_src and a.ulinstid = b.ulinstid and a.ulinstsrc =  b.ulinstsrc
) 
); 
COMMIT;   
END;

вот каким говном выглядит неотформатированный текст
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как в блоке pl/sql в разделе declare прописать выражение в переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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