我已经编写了一个过程,该过程将从主表中的数据插入到工作表中。从一种表到另一种表的数据复制。 因此,一次将在工作表中插入2到5百万个数据。现在我在这里面临性能问题。
在DML操作时,我不能使用forall语句,因为在插入之前存在许多if-else条件。
因此,我使用了/ * + APPEND_VALUES /和/ + APPEND * /之类的提示。但不确定哪一个适合于此。
PROCEDURE process_assets
CURSOR c_get_unprocessed_rcd (p_last_run_date DATE,
p_cur_run_date DATE)
IS
SELECT ROWID,
covered_line_id,
op_type,
seq_id,
NRT_CREATION_DATE,
NRT_last_update_DATE,
contract_id,
service_line_id,
gg_create_date,
instance_id,
item_type_flag,
nvl(old_item_type_flag,item_type_flag) old_item_type_flag
FROM XXCCS_DS_CVDLIB_DTLEB_ES
WHERE TRGT_CREATE_DATE BETWEEN p_last_run_date AND p_cur_run_date
ORDER BY seq_id ASC;
TYPE l_get_unprocessed_type IS TABLE OF c_get_unprocessed_rcd%ROWTYPE
INDEX BY PLS_INTEGER;
l_get_unprocessed_rcd l_get_unprocessed_type;
开始
OPEN c_get_unprocessed_rcd (p_last_run_date, p_cur_run_date);
LOOP
EXIT WHEN c_get_unprocessed_rcd%NOTFOUND;
FETCH c_get_unprocessed_rcd
BULK COLLECT INTO l_get_unprocessed_rcd
LIMIT 10000;
FOR i IN l_get_unprocessed_rcd.FIRST .. l_get_unprocessed_rcd.LAST
LOOP
BEGIN
if
l_get_unprocessed_rcd (i).op_type = 'I'
THEN
BEGIN
INSERT
INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
instance_id,
seq_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
contract_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).covered_line_id,
l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).contract_id,
l_get_unprocessed_rcd (i).item_type_flag);
INSERT
INTO XXCCS_UEE_DEVC_ES_CVD_KEY_V3 (instance_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
seq_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).item_type_flag);
END;
ELSIF l_get_unprocessed_rcd (i).op_type = 'U'
THEN
BEGIN
INSERT
INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
instance_id,
seq_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
contract_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).covered_line_id,
l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).contract_id,
l_get_unprocessed_rcd (i).item_type_flag);
INSERT
INTO XXCCS_UEE_DEVC_ES_CVD_KEY_V3 (instance_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
seq_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).item_type_flag);
IF (l_get_unprocessed_rcd (i).item_type_flag in('P','S') AND l_get_unprocessed_rcd (i).old_item_type_flag IN('C'))
OR
(l_get_unprocessed_rcd (i).item_type_flag in('C') AND l_get_unprocessed_rcd (i).old_item_type_flag IN('P','S'))
THEN
BEGIN
INSERT
INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
instance_id,
seq_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
contract_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).covered_line_id,
l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).seq_id,
'D',
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).contract_id,
l_get_unprocessed_rcd (i).old_item_type_flag);
INSERT
INTO XXCCS_UEE_DEVC_ES_CVD_KEY_V3 (instance_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
seq_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).instance_id,
'D',
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).old_item_type_flag);
END;
END IF;
END;
ELSE
BEGIN
INSERT
INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
instance_id,
seq_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
contract_id,
item_type_flag)
VALUES (l_get_unprocessed_rcd (i).covered_line_id,
l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).contract_id,
l_get_unprocessed_rcd (i).item_type_flag);
开始 选择数量(1) INTO l_cvd_exists 来自XXCCS_DS_CVDLINEIB_DETAILEB 在哪里instance_id = l_get_unprocessed_rcd(i).instance_id;
IF l_cvd_exists = 0
THEN
INSERT
INTO XXCCS_UEE_DEVC_ES_CVD_KEY_V3 (
instance_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
seq_id,
item_type_flag)
VALUES (
l_get_unprocessed_rcd (i).instance_id,
l_get_unprocessed_rcd (i).op_type,
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).item_type_flag);
ELSE
INSERT
INTO XXCCS_UEE_DEVC_ES_CVD_KEY_V3 (
instance_id,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
seq_id,
item_type_flag)
VALUES (
l_get_unprocessed_rcd (i).instance_id,
'U',
L_SOT_TABLE_NAME,
l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
l_get_unprocessed_rcd (i).GG_CREATE_DATE,
l_get_unprocessed_rcd (i).seq_id,
l_get_unprocessed_rcd (i).item_type_flag);
END IF;
end;
end;
------- Like this if else block condition will continue
此处复制是从XXCCS_DS_CVDLIB_DTLEB_ES到XXCCS_UEE_SRVC_ES_ACT_KEY,XXCCS_UEE_DEVC_ES_CVD_KEY这两个表的
因此,我需要在最短的时间内执行此操作。谁能建议我可以与插入查询一起使用的提示,或者我们可以采用其他任何方法来执行
答案 0 :(得分:3)
首先,它们都有不同的用途。
plotOptions: {
series: {
lineWidth: 0,
states: {
hover: {
lineWidthPlus: 0
}
}
}
},
仅在通过SELECT插入时使用:“ INSERT INTO ...(SELECT * FROM ...)”
APPEND
最近被引入用于:“ INSERT INTO ... VALUES(...)。此提示也可用于批量操作。
两个提示都有各种约束,在各种情况下都可以忽略。参见Why Append hint is ignored
IHMO如果您确实关心插入语句的性能,请首先关注
在过程运行时,还要检查INSERT语句的执行计划。如果您看到:
答案 1 :(得分:0)
如果您使用直接路径(在使用append
或append_values
时插入)逐行插入,请注意,您将在发出的每个插入语句中创建一个新的extent(或使用现有的免费范围(如果可用),否则将创建一个新的范围。
因此,测试速度很重要,但同时也要测试目标表的大小。
通过APPEND VS APPEND_VALUES的速度测试,您可以找到here(简而言之,append_values
比append
快)
关于附加的一些简要信息,您也可以在此oracle base article
上找到答案 2 :(得分:0)
我必须说您可以使用index 0
。
我试图将您的FORALL
逻辑转换为IF-ELSE
。
您只需要根据逻辑在FORALL中添加WHERE条件即可。
看下面的代码:
FORALL
--------- 更新 ---------
我现在完全改变了答案。
你会喜欢的。我使用了PROCEDURE PROCESS_ASSETS AS
CURSOR C_GET_UNPROCESSED_RCD (
P_LAST_RUN_DATE DATE,
P_CUR_RUN_DATE DATE
) IS
SELECT
ROWID,
COVERED_LINE_ID,
OP_TYPE,
SEQ_ID,
NRT_CREATION_DATE,
NRT_LAST_UPDATE_DATE,
CONTRACT_ID,
SERVICE_LINE_ID,
GG_CREATE_DATE,
INSTANCE_ID,
ITEM_TYPE_FLAG,
NVL(OLD_ITEM_TYPE_FLAG, ITEM_TYPE_FLAG) OLD_ITEM_TYPE_FLAG
FROM
XXCCS_DS_CVDLIB_DTLEB_ES;
-- ORDER BY seq_id ASC; -- not needed
TYPE L_GET_UNPROCESSED_TYPE IS
TABLE OF C_GET_UNPROCESSED_RCD%ROWTYPE INDEX BY PLS_INTEGER;
L_GET_UNPROCESSED_RCD L_GET_UNPROCESSED_TYPE;
BEGIN
OPEN C_GET_UNPROCESSED_RCD; LOOP
EXIT WHEN C_GET_UNPROCESSED_RCD%NOTFOUND;
FETCH C_GET_UNPROCESSED_RCD BULK COLLECT INTO L_GET_UNPROCESSED_RCD LIMIT 10000;
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_SRVC_ES_ACT_KEY (
COVERED_LINE_ID,
INSTANCE_ID,
SEQ_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
CONTRACT_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).COVERED_LINE_ID,
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
L_GET_UNPROCESSED_RCD(I).OP_TYPE,
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).CONTRACT_ID,
L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG
FROM
DUAL
WHERE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'I'; -- added this condition from your IF-ELSE
--
--
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_DEVC_ES_CVD_KEY (
INSTANCE_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
SEQ_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
L_GET_UNPROCESSED_RCD(I).OP_TYPE,
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG
FROM
DUAL
WHERE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'I'; -- added this condition from your IF-ELSE
--
--
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_SRVC_ES_ACT_KEY (
COVERED_LINE_ID,
INSTANCE_ID,
SEQ_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
CONTRACT_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).COVERED_LINE_ID,
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
L_GET_UNPROCESSED_RCD(I).OP_TYPE,
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).CONTRACT_ID,
L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG
FROM
DUAL
WHERE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'U'; -- added this condition from your IF-ELSE
--
--
--
--
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_DEVC_ES_CVD_KEY (
INSTANCE_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
SEQ_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
L_GET_UNPROCESSED_RCD(I).OP_TYPE,
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG
FROM
DUAL
WHERE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'U'; -- added this condition from your IF-ELSE
--
--
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_SRVC_ES_ACT_KEY (
COVERED_LINE_ID,
INSTANCE_ID,
SEQ_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
CONTRACT_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).COVERED_LINE_ID,
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
'D',
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).CONTRACT_ID,
L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG
FROM
DUAL
WHERE -- added this condition from your IF-ELSE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'U'
AND ( ( L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG IN (
'P',
'S'
)
AND L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG IN (
'C'
) )
OR ( L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG IN (
'C'
)
AND L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG IN (
'P',
'S'
) ) );
--
--
FORALL I IN 1..L_GET_UNPROCESSED_RCD.COUNT
INSERT INTO XXCCS_UEE_DEVC_ES_CVD_KEY (
INSTANCE_ID,
OP_TYPE,
SOT_TABLE,
SOT_CREATE_DATE,
SOT_LAST_UPDATE_DATE,
GG_CREATE_DATE,
SEQ_ID,
ITEM_TYPE_FLAG
)
SELECT
L_GET_UNPROCESSED_RCD(I).INSTANCE_ID,
'D',
L_SOT_TABLE_NAME,
L_GET_UNPROCESSED_RCD(I).NRT_CREATION_DATE,
L_GET_UNPROCESSED_RCD(I).NRT_LAST_UPDATE_DATE,
L_GET_UNPROCESSED_RCD(I).GG_CREATE_DATE,
L_GET_UNPROCESSED_RCD(I).SEQ_ID,
L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG
FROM
DUAL
WHERE -- added this condition from your IF-ELSE
L_GET_UNPROCESSED_RCD(I).OP_TYPE = 'U'
AND ( ( L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG IN (
'P',
'S'
)
AND L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG IN (
'C'
) )
OR ( L_GET_UNPROCESSED_RCD(I).ITEM_TYPE_FLAG IN (
'C'
)
AND L_GET_UNPROCESSED_RCD(I).OLD_ITEM_TYPE_FLAG IN (
'P',
'S'
) ) );
-- YOUR OLD CODE --
-------------------
-------------------
-------------------
-------------------
-------------------
-- FOR i IN l_get_unprocessed_rcd.FIRST .. l_get_unprocessed_rcd.LAST
-- LOOP--2
-- BEGIN--3
-- if
-- l_get_unprocessed_rcd (i).op_type = 'I'
-- THEN
-- BEGIN
--
-- INSERT
-- INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
-- instance_id,
-- seq_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- contract_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).covered_line_id,
-- l_get_unprocessed_rcd (i).instance_id,
-- l_get_unprocessed_rcd (i).seq_id,
-- l_get_unprocessed_rcd (i).op_type,
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).contract_id,
-- l_get_unprocessed_rcd (i).item_type_flag);
--
--
--
-- INSERT
-- INTO XXCCS_UEE_DEVC_ES_CVD_KEY (instance_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- seq_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).instance_id,
-- l_get_unprocessed_rcd (i).op_type,
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).seq_id,
-- l_get_unprocessed_rcd (i).item_type_flag);
--
--
--
-- ELSIF l_get_unprocessed_rcd (i).op_type = 'U'
-- THEN
-- BEGIN
-- INSERT
-- INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
-- instance_id,
-- seq_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- contract_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).covered_line_id,
-- l_get_unprocessed_rcd (i).instance_id,
-- l_get_unprocessed_rcd (i).seq_id,
-- l_get_unprocessed_rcd (i).op_type,
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).contract_id,
-- l_get_unprocessed_rcd (i).item_type_flag);
--
--
--
-- INSERT
-- INTO XXCCS_UEE_DEVC_ES_CVD_KEY (instance_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- seq_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).instance_id,
-- l_get_unprocessed_rcd (i).op_type,
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).seq_id,
-- l_get_unprocessed_rcd (i).item_type_flag);
--
--
--
-- IF (l_get_unprocessed_rcd (i).item_type_flag in('P','S') AND l_get_unprocessed_rcd (i).old_item_type_flag IN('C'))
-- OR
-- (l_get_unprocessed_rcd (i).item_type_flag in('C') AND l_get_unprocessed_rcd (i).old_item_type_flag IN('P','S'))
-- THEN
-- BEGIN
-- INSERT
-- INTO XXCCS_UEE_SRVC_ES_ACT_KEY (covered_line_id,
-- instance_id,
-- seq_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- contract_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).covered_line_id,
-- l_get_unprocessed_rcd (i).instance_id,
-- l_get_unprocessed_rcd (i).seq_id,
-- 'D',
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).contract_id,
-- l_get_unprocessed_rcd (i).old_item_type_flag);
--
--
--
-- INSERT
-- INTO XXCCS_UEE_DEVC_ES_CVD_KEY (instance_id,
-- OP_TYPE,
-- SOT_TABLE,
-- SOT_CREATE_DATE,
-- SOT_LAST_UPDATE_DATE,
-- GG_CREATE_DATE,
-- seq_id,
-- item_type_flag)
-- VALUES (l_get_unprocessed_rcd (i).instance_id,
-- 'D',
-- L_SOT_TABLE_NAME,
-- l_get_unprocessed_rcd (i).NRT_CREATION_DATE,
-- l_get_unprocessed_rcd (i).NRT_LAST_UPDATE_DATE,
-- l_get_unprocessed_rcd (i).GG_CREATE_DATE,
-- l_get_unprocessed_rcd (i).seq_id,
-- l_get_unprocessed_rcd (i).old_item_type_flag);
------- Like this if else block condition will continue
。
只是,我不确定INSERT ALL
是什么。所以我认为它是L_SOT_TABLE_NAME
。您可以获取变量,并在过程中相应地使用它。
String
--------- 更新2 ** ** ---------
我已经更新了答案,但是由于StackOverflow中(在“答案”部分中)有30000个字符的限制,因此我将答案here放了进去。
添加/修改了最新更新的答案中的第7、8、9、10部分
干杯!