表 ZZ_FILE 欄位 ZZ02 存放類似 apyi/gpyi010 的字串,需將以 gpy 開頭的記錄中 apyi 替換為 gpyi,即僅替換部分子字串。
UPDATE ZZ_FILE SET ZZ02[1] = 'G' WHERE ...; -- 語法錯誤,Oracle 不支援陣列式索引賦值
TRANSLATE(string, from_str, to_str) 可逐字元對應替換。若 from_str 出現多次,所有出現處皆會被替換。
UPDATE AA
SET B = TRANSLATE(B, 'apyi', 'gpyi')
WHERE SUBSTR(B, 6, 10) = 'gpyi';
說明:
TRANSLATE(B, 'apyi', 'gpyi') 將 a→g, p→p, y→y, i→i,實際上只改變首字元 a→gWHERE SUBSTR(B, 6, 10) = 'gpyi' 限定僅處理第 6 碼起為 gpyi 的列,避免誤改其他資料若欄位中有多組 apyi 皆會被替換;需精確控制替換範圍時,可結合 INSTR、SUBSTR、REPLACE 或正則表達式(REGEXP_REPLACE)處理。