我们今天是要和大家一起讨论的是Oracle for in loop 两例,我前两天在相关网站看见Oracle for in loop 两例的相关资料,觉得在实际操作中会对计算机一族有所帮助,就拿出来供大家分享。
Oracle for in loop 壹:
1、搭建环境
createtableETL_DATE(DATE_CHARVARCHAR2(8),DATE_DATEDATE); select*frometl_date;
2、代码
DECLARE v_datedate; BEGIN EXECUTEIMMEDIATE'truncatetableetl_date'; forv_datein20091001..20091021LOOP INSERTINTOetl_date (date_char,date_date) SELECTv_date,to_date(v_date,'YYYY-MM-DD')FROMdual; ENDLOOP; COMMIT; END; select*frometl_date;
3、删除环境
droptableetl_date;
注:仅适用于在一月之内的循环。
Oracle for in loop 贰:
1、搭建环境
createtableSQLTEXT(TEXTVARCHAR2(100)); createtableHZ(HZ_NAMEVARCHAR2(3)); INSERTINTOhz(HZ_NAME)values(''); INSERTINTOhz(HZ_NAME)values('PRE'); INSERTINTOhz(HZ_NAME)values('CUR'); INSERTINTOhz(HZ_NAME)values('INS'); INSERTINTOhz(HZ_NAME)values('UPD'); select*fromHZ;
2、代码
declare P_TABLE_NAMEvarchar2(100):='CFA'; begin forHZin(selectHZ_NAMEfromHZ)LOOP insertintosqltext select'CREATETABLE'||REPLACE(P_TABLE_NAME,'EDW','TMP')|| HZ.HZ_NAME||'ASselect*from'||P_TABLE_NAME|| 'whereROWNUM<1' fromdual; ENDLOOP; end; select*fromSQLTEXT;
3、清空环境
droptableSQLTEXT; droptableHZ; powershell
相关文章
标签:Oracle