请用pl/sql 插入wip_dj_close_temp 表去关离散任务
时间: 2023-08-03 22:05:50 浏览: 41
好的,以下是插入wip_dj_close_temp表的PL/SQL代码,用于关离散任务:
```
INSERT INTO wip_dj_close_temp
SELECT distinct dj
FROM wip_operations
WHERE completion_subinventory = 'CLOSE'
AND status_type in (3, 7)
AND dj not in (SELECT dj FROM wip_dj_close_temp);
```
这个代码会将wip_operations表中完成子库存为'CLOSE',状态类型为3或7的离散任务的dj插入到wip_dj_close_temp表中。同时,还会确保不会插入已经在wip_dj_close_temp表中的dj。
相关问题
如何插入wip_dj_close_temp表数据,模拟提交关闭离散任务请求
以下是模拟提交关闭离散任务请求并插入wip_dj_close_temp表的PL/SQL代码:
```
DECLARE
p_dj NUMBER := 12345; -- 假设要关闭的离散任务号为12345
BEGIN
-- 模拟提交关闭离散任务请求
UPDATE wip_operations
SET status_type = 7
WHERE dj = p_dj
AND status_type = 3;
-- 插入wip_dj_close_temp表
INSERT INTO wip_dj_close_temp(dj)
VALUES(p_dj);
COMMIT;
DBMS_OUTPUT.PUT_LINE('离散任务' || p_dj || '已成功关闭并插入到wip_dj_close_temp表中!');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('关闭离散任务' || p_dj || '时出现错误:' || SQLERRM);
END;
```
这个代码会将dj为12345且状态类型为3的离散任务更新为状态类型为7,模拟提交关闭离散任务请求。然后,将该离散任务的dj插入到wip_dj_close_temp表中,并输出提示信息。如果在操作过程中出现错误,会回滚事务并输出错误信息。
-param:JOB_NAME=job_ads_fin_wip_account_allot_d -param:ETL_FILE=/19_ADS_FIN/ETL/job_ads_fin_wip_account_allot_d.kjb -param:MIN_START_DATE=20230701 -param:MIN_END_DATE=20230702 -param:MAX_START_DATE=20230709 -param:MAX_END_DATE=20230710 -param:INCR_STEP=1M
这看起来像是一组作业参数的设置。这些参数用于指定一个名为"job_ads_fin_wip_account_allot_d"的作业的执行配置。
下面是每个参数的说明:
- JOB_NAME:作业的名称,设定为"job_ads_fin_wip_account_allot_d"。
- ETL_FILE:ETL文件的路径,设定为"/19_ADS_FIN/ETL/job_ads_fin_wip_account_allot_d.kjb"。
- MIN_START_DATE:最小开始日期,设定为"20230701"。
- MIN_END_DATE:最小结束日期,设定为"20230702"。
- MAX_START_DATE:最大开始日期,设定为"20230709"。
- MAX_END_DATE:最大结束日期,设定为"20230710"。
- INCR_STEP:增量步长,设定为"1M"。
这些参数可能会在作业执行过程中被使用,用于指定作业的输入、输出、日期范围等信息。