/*
從字串型態的欄位找出夾雜換行特殊字元的資料
*/
/* create testing table */
CREATE TABLE TSTRING
(
COL0 INTEGER,
COL1 VARCHAR2(32)
);
/* create testing data */
INSERT INTO TSTRING VALUES (1,'KX-
123C958');
INSERT INTO TSTRING VALUES (2,'OD-129C' || CHR(10) || '900');
INSERT INTO TSTRING VALUES (3,'OC-125X' || CHR(10) || '9002');
INSERT INTO TSTRING VALUES (4,'OC-127Y' || CHR(10) || '15');
INSERT INTO TSTRING VALUES (5,'LC-124C901');
INSERT INTO TSTRING VALUES (6,'LC-124C902');
INSERT INTO TSTRING VALUES (7,'LC-124C903');
INSERT INTO TSTRING VALUES (8,'
');
INSERT INTO TSTRING VALUES (9,'1
');
INSERT INTO TSTRING VALUES (10,CHR(10));
INSERT INTO TSTRING VALUES (11,'北緯
10.5度');
COMMIT;
/* dump 出來的結果為ascii code,找出夾雜有10的字元 */
SELECT COL0,COL1,COL2,SUBSTR(COL2,INSTR(COL2,':')+1) COL3
FROM
(SELECT COL0,COL1,DUMP(COL1) COL2 FROM TSTRING) T
WHERE SUBSTR(COL2,INSTR(COL2,':')+1) LIKE '%10%';
/* 查詢結果如下: */

/*
不過上述語法還是有問題,
ex:當 ascii 是 100 及以上的即使沒有換行符號,仍舊會被 select 出來
還是直接用 instr 去找,最為保險
謝謝熊熊
*/
SELECT * FROM TSTRING WHERE INSTR(COL1,CHR(10)) > 0;