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;