Как выполнять операторы SQL постепенно для заданного диапазона заданий - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь создать запрос, с помощью которого я могу автоматизировать выполнение операторов.

Сценарий такой, как показано ниже: -

, предоставленный диапазону заданий и процедур, скажем, JOBS от J63250-J63299 и диапазон процедур для того же - как показано ниже P632500 - P632999

Я пытаюсь выполнить простые запросы, как показано ниже, для разных таблиц.

Insert into JOB 
(JOB_ID,BTCH_ID,GRP_ID,JOB_GRP_CD,JOB_NM,JOB_DS,JOB_OBJ_TYPE_CD,JOB_ACTV_FLG,LAST_UPDT_TS)
values ('J63251','BCPR_FIX_CUST',null,'SS','run_td_macro.ksh','Load the TMP_ORD_ACTN_DETL table','SS','Y',SYSDATE);

 Insert into JOB 
(JOB_ID,BTCH_ID,GRP_ID,JOB_GRP_CD,JOB_NM,JOB_DS,JOB_OBJ_TYPE_CD,JOB_ACTV_FLG,LAST_UPDT_TS) 
values ('J63252','BCPR_FIX_CUST',null,'SS','run_td_macro.ksh','Load the TMP_ASSG_PROD_DVIC table','SS','Y',SYSDATE);

Insert into JOB 
(JOB_ID,BTCH_ID,GRP_ID,JOB_GRP_CD,JOB_NM,JOB_DS,JOB_OBJ_TYPE_CD,JOB_ACTV_FLG,LAST_UPDT_TS)
values ('J63253','BCPR_FIX_CUST',null,'SS','run_td_macro.ksh','Load the TMP_ASSG_PROD_PARM_DVIC','SS','Y',SYSDATE);

Я хочу найти способ, которым я могу определитьдиапазон процедур и диапазон заданий и требуется выполнение запроса, когда он будет постепенно выбирать диапазон заданий со всеми значениями до конца и ломает единицы, когда достигнуты предельные значения.

Может ли кто-нибудь пролить здесь немного света? Для получения дополнительной информации, пожалуйста, дайте мне знать

Iam, в настоящее время использующий oracle sql developer Версия 4.1.3.20

1 Ответ

0 голосов
/ 22 октября 2019

Примечание : Синтаксис может отличаться

Вы можете попробовать CTE

, например:

with cte (JOB_ID,BTCH_ID,GRP_ID,JOB_GRP_CD,JOB_NM,JOB_DS,JOB_OBJ_TYPE_CD,JOB_ACTV_FLG,cnt)as
(
    SELECT to_char('J'(10)) as JOB_ID,'BCPR_FIX_CUST',null,'SS','run_td_macro.ksh','Load the TMP_ORD_ACTN_DETL table','SS','Y',cast(63251 as number(10))as cnt

    union all
    SELECT to_char(('J'||to_char(cnt(10)))(10)),BTCH_ID,GRP_ID,JOB_GRP_CD,JOB_NM,JOB_DS,JOB_OBJ_TYPE_CD,JOB_ACTV_FLG,cnt+1 from cte  where cnt<63299

)
select * 
from cte 
where JOB_ID != 'J'
option (maxrecursion 0);

вместо select * вы можете использовать SELECT INTO Statement для массовой вставки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...