问题:
表数据描述:1、STG.STG_D_TCM_USER_PROD 表中存放1-12月数据(1亿条);
2、state = '0'的只有1000000条;
3、state = '0'为需要数据
需求描述:过程每次都要跑数据的时候 W_M_RET_CLW_NET_MID1 数据都会被重新插入一次数据。
其实我只想在 W_M_RET_CLW_NET_MID1表中的数据小于V_ACCT_MONTH的时候才跑这个表,请问怎么实现
CREATE OR REPLACE PROCEDURE P_W_M_RET_CLW_NET(V_ACCT_MONTH IN VARCHAR2,
V_RETCODE OUT VARCHAR2,
V_RETINFO OUT VARCHAR2) ISBEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET_MID1';
INSERT INTO W_M_RET_CLW_NET_MID1
SELECT T1.ACCT_DATE,--日期:格式:20101201
T1.USER_ID,
T1.PROD_NO,
T1.PROD_NAME,
T1.PROD_INST_NO
FROM STG.STG_D_TCM_USER_PROD T1
WHERE T.STATE = '0'
COMMIT;
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET';
INSERT INTO W_M_RET_CLW_NET
SELECT * FROM W_M_RET_CLW_NET_MID1 T WHERE T.ACCT_MONTH = V_ACCT_MONTH;
COMMIT;
END;
表数据描述:1、STG.STG_D_TCM_USER_PROD 表中存放1-12月数据(1亿条);
2、state = '0'的只有1000000条;
3、state = '0'为需要数据
需求描述:过程每次都要跑数据的时候 W_M_RET_CLW_NET_MID1 数据都会被重新插入一次数据。
其实我只想在 W_M_RET_CLW_NET_MID1表中的数据小于V_ACCT_MONTH的时候才跑这个表,请问怎么实现
CREATE OR REPLACE PROCEDURE P_W_M_RET_CLW_NET(V_ACCT_MONTH IN VARCHAR2,
V_RETCODE OUT VARCHAR2,
V_RETINFO OUT VARCHAR2) ISBEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET_MID1';
INSERT INTO W_M_RET_CLW_NET_MID1
SELECT T1.ACCT_DATE,--日期:格式:20101201
T1.USER_ID,
T1.PROD_NO,
T1.PROD_NAME,
T1.PROD_INST_NO
FROM STG.STG_D_TCM_USER_PROD T1
WHERE T.STATE = '0'
COMMIT;
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET';
INSERT INTO W_M_RET_CLW_NET
SELECT * FROM W_M_RET_CLW_NET_MID1 T WHERE T.ACCT_MONTH = V_ACCT_MONTH;
COMMIT;
END;
你说的跑这个数据是什么意思?
还有W_M_RET_CLW_NET_MID1表中的数据小于V_ACCT_MONTH?
W_M_RET_CLW_NET_MID1表中的数据小于V_ACCT_MONTH的时候才跑这个表
这个表中的什么字段少于V_ACCT_MONTHV_ACCT_MONTH 什么格式的
V_RETCODE OUT VARCHAR2,
V_RETINFO OUT VARCHAR2) IS
num number;
BEGIN
select count(*) into num from TABLE W_M_RET_CLW_NET_MID1 where ACCT_MONTH<=to_char(V_ACCT_MONTH,'yyyymmdd');
if num=0 then
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET_MID1';
INSERT INTO W_M_RET_CLW_NET_MID1
SELECT T1.ACCT_DATE,--日期:格式:20101201
T1.USER_ID,
T1.PROD_NO,
T1.PROD_NAME,
T1.PROD_INST_NO
FROM STG.STG_D_TCM_USER_PROD T1
WHERE T.STATE = '0'
COMMIT;
EXECUTE IMMEDIATE 'TRUNCATE TABLE W_M_RET_CLW_NET';
INSERT INTO W_M_RET_CLW_NET
SELECT * FROM W_M_RET_CLW_NET_MID1 T WHERE T.ACCT_MONTH = V_ACCT_MONTH;
COMMIT;
else
return null;
end if;
END;