DML方式使用Bind-Variables
关键字: SQLBEGIN
FOR x IN
(SELECT
ROWNUM R,
HSE_UNIT_KEY ,
HSE_BLK_KEY,
HSE_UNIT_CODE_ADDR,
CUST_MBR_ENG_NAME,
CUST_MBR_RLTN_CODE,
ICTYPE || MIDCHARACTER || ICNUMBER RPT_ID_TYPE_NUM,
RPT_RPTNG_DATE
FROM
(SELECT
UNIT.HSE_UNIT_KEY,
UNIT.HSE_BLK_KEY,
MBR.CUST_MBR_ID_NUM HSE_RSDN_MBR_ID_NUM,
HSE_UNIT_CODE_ADDR,
MBR.CUST_MBR_RLTN_CODE,
MBR.CUST_MBR_ID_TYPE_CODE ICTYPE,
(CASE
WHEN (ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) >= ASCII('0') AND
ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) <= ASCII('9')) THEN
(SUBSTR(MBR.CUST_MBR_ID_NUM, 1, 1))
ELSE
(SUBSTR(MBR.CUST_MBR_ID_NUM, 1, 2))
END) MIDCHARACTER,
(DECODE(MBR.CUST_MBR_ID_TYPE_CODE,
'IC',
(CASE
WHEN (ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) >= ASCII('0') AND
ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) <= ASCII('9')) THEN
(SUBSTR(SUBSTR(MBR.CUST_MBR_ID_NUM,
2,
LENGTH(MBR.CUST_MBR_ID_NUM)),
1,
LENGTH(SUBSTR(MBR.CUST_MBR_ID_NUM,
2,
LENGTH(MBR.CUST_MBR_ID_NUM))) - 1) || '(' ||
SUBSTR(SUBSTR(MBR.CUST_MBR_ID_NUM,
2,
LENGTH(MBR.CUST_MBR_ID_NUM)),
LENGTH(SUBSTR(MBR.CUST_MBR_ID_NUM,
2,
LENGTH(MBR.CUST_MBR_ID_NUM))),
1) || ')')
ELSE
(SUBSTR(SUBSTR(MBR.CUST_MBR_ID_NUM,
3,
LENGTH(MBR.CUST_MBR_ID_NUM)),
1,
LENGTH(SUBSTR(MBR.CUST_MBR_ID_NUM,
3,
LENGTH(MBR.CUST_MBR_ID_NUM))) - 1) || '(' ||
SUBSTR(SUBSTR(MBR.CUST_MBR_ID_NUM,
3,
LENGTH(MBR.CUST_MBR_ID_NUM)),
LENGTH(SUBSTR(MBR.CUST_MBR_ID_NUM,
3,
LENGTH(MBR.CUST_MBR_ID_NUM))),
1) || ')')
END),
(CASE
WHEN (ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) >= ASCII('0') AND
ASCII(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, 1)) <= ASCII('9')) THEN
(SUBSTR(MBR.CUST_MBR_ID_NUM, 2, LENGTH(MBR.CUST_MBR_ID_NUM)))
ELSE
(SUBSTR(MBR.CUST_MBR_ID_NUM, 3, LENGTH(MBR.CUST_MBR_ID_NUM)))
END))) ICNUMBER,
MBR.CUST_MBR_ENG_NAME,
MBR.CUST_MBR_ID_NUM RPT_ID_TYE_NUM,
SYSDATE RPT_RPTNG_DATE,
CUST.CUST_FMLY_SIZE_NUM,
COUNT(*) OVER (PARTITION BY UNIT.HSE_UNIT_KEY) NO_OF_MEMBER
FROM
HSM_HSE_UNIT UNIT,
TAM_TNCY_AGRMT AGRMT,
CPM_CUST_APLY CUST,
CPM_CUST_APLY_MBR MBR,
SRP_IH_HSHLD_APLY TEMP
WHERE AGRMT.HSE_UNIT_KEY = UNIT.HSE_UNIT_KEY
AND
CUST.CUST_KEY=AGRMT.CUST_KEY
AND
CUST.HSE_SRVC_APLY_KEY=AGRMT.HSE_SRVC_APLY_KEY
AND
MBR.CUST_KEY=AGRMT.CUST_KEY
AND
MBR.HSE_SRVC_APLY_KEY=AGRMT.HSE_SRVC_APLY_KEY
AND
TEMP.HSE_BNFT_MBR_ID_TYPE_CODE=MBR.CUST_MBR_ID_TYPE_CODE
AND
TEMP.HSE_BNFT_MBR_ID_NUM=MBR.CUST_MBR_ID_NUM
AND
MBR.LAST_REC_TXN_TYPE_CODE<>'D'
AND
CUST.LAST_REC_TXN_TYPE_CODE<>'D'
AND
AGRMT.LAST_REC_TXN_TYPE_CODE<>'D'
AND
UNIT.LAST_REC_TXN_TYPE_CODE<>'D'
AND
TEMP.RPT_RECORD_TYPE='1A'
AND
AGRMT.TNCY_AGRMT_TM_STS_CODE = 'A'
AND
TEMP.HSE_BNFT_TYPE_CODE='T') TEMP_MBR
WHERE
TEMP_MBR.CUST_FMLY_SIZE_NUM>TEMP_MBR.NO_OF_MEMBER
)
LOOP
EXECUTE IMMEDIATE
'INSERT INTO SRP_IH_WTHT_GWL_APP(
HSE_UNIT_KEY,
HSE_BLK_KEY,
HSE_UNIT_CODE_ADDR,
CUST_MBR_RLTN_CODE,
RPT_ID_TYPE_NUM,
RPT_RPTNG_DATE)
VALUES(
:HSE_UNIT_KEY,
:HSE_BLK_KEY,
:HSE_UNIT_CODE_ADDR,
:CUST_MBR_RLTN_CODE,
:RPT_ID_TYPE_NUM,
:RPT_RPTNG_DATE
)'
using
x.HSE_UNIT_KEY,
x.HSE_BLK_KEY,
x.HSE_UNIT_CODE_ADDR,
x.CUST_MBR_RLTN_CODE,
x.RPT_ID_TYPE_NUM,
x.RPT_RPTNG_DATE;
IF ((x.R mod 100)=0) THEN
COMMIT;
END IF;
END LOOP;
END;
- 09:17
- 浏览 (588)
- 评论 (0)
- 分类: Database
- 发布在 Database圈子 圈子
- 相关推荐
发表评论
- 浏览: 13157 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
网络管理系统OpenNMS的安 ...
^_^,呵呵,没有,现正在学习,正考虑用jmx实现!
-- by martri -
网络管理系统OpenNMS的安 ...
看到你很多是安装jDk环境 用别人的东西来解决! 貌似jmx可以实现,兄弟有这个 ...
-- by beyondsanli -
也说QQ的QZone
Eastsun 写道用过一阵QQZone和校内 不过现在全kill掉了 我就不喜 ...
-- by huangxiaomao -
也说QQ的QZone
比较烦腾讯的一点就是:它总是过滤一些消息,发段代码,半天了别人没反应,结果一问, ...
-- by 深秋小雨 -
也说QQ的QZone
从百度搜霸恶心到现在,至今不能正视百度。古狗是不二选择。
-- by stevenwang






评论排行榜