Oracle DB, 重新排序字串內容
某半導體產業專用
蠢笨的做事規則製造出來的怪需求
反正資料長好看一點就對了,其他的問題就不要管那麼多
/************************************************ Purpose: 將傳入固定格式的 數值字串 重新排列順序 Ex. 25;05;17;01 => 01;05;17;25 ***********************************************/ FUNCTION get_sort_wafer(p_wafer_id IN VARCHAR2) RETURN VARCHAR2 IS v_temp VARCHAR2(255); v_sub VARCHAR2(255); v_max NUMBER := 25; BEGIN --處理暫存字串 v_temp := REPLACE(LPAD('-', v_max * 3), ' ', '-'); --取代刻號位置 FOR ii IN 1 .. (LENGTH(REPLACE(p_wafer_id, ';')) / 2) LOOP v_sub := SUBSTR(p_wafer_id, ii * 3 - 2, 2); v_temp := SUBSTR(v_temp, 1, (v_sub - 1) * 3) || v_sub || ';' || SUBSTR(v_temp, v_sub * 3 + 1, (v_max - v_sub) * 3); END LOOP; --去除多餘資訊 v_temp := REPLACE(v_temp, '-', ''); v_temp := SUBSTR(v_temp, 1, LENGTH(v_temp) - 1); RETURN v_temp; EXCEPTION WHEN OTHERS THEN RETURN ''; END;