PR INS REGISTRY — различия между версиями
Материал из wiki.standart-n.ru
Natali (обсуждение | вклад) (Новая страница: «SET TERM ^ ; create or alter procedure PR_INS_REGISTRY ( DOCTOR_ID DM_UUID_NULL) as declare variable TEMP_DATE DM_DATETIME; declare variable FIRST_DATE DM_DA…») |
Natali (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | SET TERM ^ ; | + | SET TERM ^ ; |
− | create or alter procedure PR_INS_REGISTRY ( | + | create or alter procedure PR_INS_REGISTRY ( |
− | + | DOCTOR_ID DM_UUID_NULL) | |
− | as | + | as |
− | declare variable TEMP_DATE DM_DATETIME; | + | declare variable TEMP_DATE DM_DATETIME; |
− | declare variable FIRST_DATE DM_DATETIME; | + | declare variable FIRST_DATE DM_DATETIME; |
− | declare variable RES_DATE DM_DATETIME; | + | declare variable RES_DATE DM_DATETIME; |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
begin | begin | ||
− | temp_date=first_date+1; | + | temp_date='01.01.2017 08:00:00'; |
− | + | first_date='01.01.2017 08:00:00'; | |
− | + | while (temp_date<'01.01.2018 00:00:00') | |
− | + | do | |
− | + | begin | |
− | end^ | + | res_date=temp_date; |
− | + | if ((select first 1 r.d$uuid from registry r where r.doctor_id=:doctor_id and | |
− | SET TERM ; ^ | + | r.status>-1 and r.reg_date=:res_date) is null) then |
− | + | INSERT INTO REGISTRY (DOCTOR_ID, STATUS, REG_DATE) | |
− | /* Following GRANT statetements are generated automatically */ | + | VALUES (:doctor_id,0,:res_date); |
− | + | temp_date=dateadd(minute,30,temp_date); | |
− | GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY; | + | if (extract(hour from temp_date)=22 and extract(minute from temp_date)=00) then |
− | + | begin | |
− | /* Existing privileges on this procedure */ | + | temp_date=first_date+1; |
− | + | first_date=temp_date; | |
− | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP; | + | end |
− | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA; | + | --suspend; |
+ | end | ||
+ | end^ | ||
+ | |||
+ | SET TERM ; ^ | ||
+ | |||
+ | /* Following GRANT statetements are generated automatically */ | ||
+ | |||
+ | GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY; | ||
+ | |||
+ | /* Existing privileges on this procedure */ | ||
+ | |||
+ | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP; | ||
+ | GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA; |
Версия 14:54, 27 декабря 2016
SET TERM ^ ;
create or alter procedure PR_INS_REGISTRY ( DOCTOR_ID DM_UUID_NULL) as declare variable TEMP_DATE DM_DATETIME; declare variable FIRST_DATE DM_DATETIME; declare variable RES_DATE DM_DATETIME; begin temp_date='01.01.2017 08:00:00'; first_date='01.01.2017 08:00:00'; while (temp_date<'01.01.2018 00:00:00') do begin res_date=temp_date; if ((select first 1 r.d$uuid from registry r where r.doctor_id=:doctor_id and r.status>-1 and r.reg_date=:res_date) is null) then INSERT INTO REGISTRY (DOCTOR_ID, STATUS, REG_DATE) VALUES (:doctor_id,0,:res_date); temp_date=dateadd(minute,30,temp_date); if (extract(hour from temp_date)=22 and extract(minute from temp_date)=00) then begin temp_date=first_date+1; first_date=temp_date; end --suspend; end end^ SET TERM ; ^ /* Following GRANT statetements are generated automatically */ GRANT SELECT,INSERT ON REGISTRY TO PROCEDURE PR_INS_REGISTRY; /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO PROCEDURE TEMP; GRANT EXECUTE ON PROCEDURE PR_INS_REGISTRY TO SYSDBA;