标签:span delete color com replace har varchar tput ora
-- 字符串分割示例 SELECT REGEXP_SUBSTR(‘17,20,23‘, ‘[^,]+‘, 1, LEVEL, ‘i‘) AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH(‘17,20,23‘) - LENGTH(REGEXP_REPLACE(‘17,20,23‘, ‘,‘, ‘‘))+1; CREATE TABLE tm_change( ID NUMBER, transit_zno VARCHAR2(10), src VARCHAR2(100), des VARCHAR2(100) ); CREATE TABLE temp_tm_change( ID NUMBER, transit_zno VARCHAR2(10), src VARCHAR2(100), des VARCHAR2(100) ); -- 原数据 SELECT t.*,ROWID FROM tm_change t; --输出数据 SELECT t.* FROM temp_tm_change t; DELETE FROM temp_tm_change; COMMIT; DECLARE recordCount NUMBER;-- 一条记录衍生的记录条数 sumCount NUMBER; --总条数 BEGIN sumCount := 0; -- sum FOR rs IN (SELECT id,transit_zno ,src,des FROM tm_change) LOOP recordCount := 0; --src FOR srcRS IN (SELECT REGEXP_SUBSTR(rs.src, ‘[^,]+‘, 1, LEVEL, ‘i‘) AS str FROM DUAL CONNECT BY LEVEL <= LENGTH(rs.src) - LENGTH(REGEXP_REPLACE(rs.src, ‘,‘, ‘‘))+1) LOOP -- des FOR desRS IN (SELECT REGEXP_SUBSTR(rs.des, ‘[^,]+‘, 1, LEVEL, ‘i‘) AS str FROM DUAL CONNECT BY LEVEL <= LENGTH(rs.des) - LENGTH(REGEXP_REPLACE(rs.des, ‘,‘, ‘‘))+1) LOOP recordCount := recordCount + 1; sumCount := sumCount + 1; INSERT INTO temp_tm_change(ID,transit_zno,src,des) VALUES (rs.id,rs.transit_zno,srcRs.str,desRS.str); COMMIT; END LOOP; END LOOP; --dbms_output.put_line(‘insert a record : id ->‘ || rs.id || ‘ recordCount --> ‘ || recordCount ); buffer overflow END LOOP; --dbms_output.put_line(‘create record sumCount --> ‘ || sumCount ); END; SELECT transit_zno,src,des FROM temp_tm_change GROUP BY transit_zno,src,des HAVING COUNT(*) > 1 ;
标签:span delete color com replace har varchar tput ora
原文地址:http://www.cnblogs.com/fubinhnust/p/7260020.html