2014-08-29 154 views
-4

我在表中有很多行,並且字符串中隱藏了不正確的條形碼。Oracle SQL查找並替換

我需要對這些進行更新以替換fd>;隱藏在fd>的字符串中; 1。

但這一行可能有一些像

^^ XA XFB:trgt001.zpl^^ FS^FN2牛津FDLondon^^ FS^FN4 FD^^ FS^FN6^FDLONDON FS^^ FN8 FDW1C 1DN^FS^FN100^FD>; 110032730214^FS^FN1^FDSH

所以,我基本上只是插入一個額外的1到字符串中的任何地方有一個FD>;

請問這可能嗎?

+0

和你有什麼企圖 – Frazz 2014-08-29 07:55:09

+0

我能想到的?嘗試設置數據,如'%FD>; 1%數據類似'%FD>;%'',但這並不起作用 – Dorbs 2014-08-29 07:58:21

+0

任何運氣,但有任何答案? – GolezTrol 2014-09-06 09:17:01

回答

0
UPDATE YOUR_TABLE t 
SET T.COLUMN = REPLACE(T.COLUMN, 'FD>;', 'FD>;1') 
0

使用REPLACE功能。

update YourTable t 
set 
    t.Barcode = replace(t.Barcode, 'FD>;', 'FD>;1') 

注意這個函數(如在普通字符串)是大小寫敏感的,所以它會取代'FD>;'但不'fd>;'。如果你也想這樣做,你可以進行多次替換。

0

你可以使用REGEXP_REPLACE做一個不區分大小寫的替代太(以下字符串有不同的工況組合「FD;>」:

with data as 
(select '^XA^XFB:trgt001.zpl^FS^FN2^FDLondon Oxford ^FS^FN4^FD^FS^FN6^FDLONDON^FS^FN8^FDW1C 1DN^FS^FN100^FD>;110032730214^FS^FN1^FDSH' string from dual 
    union 
    select '^XA^XFB:trgt001.zpl^FS^FN2^FDLondon Oxford ^FS^FN4^FD^FS^FN6^FDLONDON^FS^FN8^FDW1C 1DN^FS^FN100^fD>;110032730214^FS^FN1^FDSH' string from dual 
    union 
    select '^XA^XFB:trgt001.zpl^FS^FN2^FDLondon Oxford ^FS^FN4^FD^FS^FN6^FDLONDON^FS^FN8^FDW1C 1DN^FS^FN100^fd>;110032730214^FS^FN1^FDSH' string from dual 
    union 
    select '^XA^XFB:trgt001.zpl^FS^FN2^FDLondon Oxford ^FS^FN4^FD^FS^FN6^FDLONDON^FS^FN8^FDW1C 1DN^FS^FN100^Fd>;110032730214^FS^FN1^FDSH' string from dual 
) 
select regexp_replace(string, 'FD>;', 'FD>;1', 1, 0, 'i') from data;