需將 zz_file 表中 zz01 以 gpy 開頭的記錄,其 zz02 欄位裡的 apyi 替換為 gpyi。嘗試 UPDATE zz_file SET zz02[1]='g' ... 失敗,因 Oracle 不支援陣列式字元更新。
TRANSLATE(string, from_chars, to_chars) 可逐字元對應替換,適合單字元轉換。
FUNCTION TRANSLATE (
string_in IN VARCHAR2,
from_chars IN VARCHAR2,
to_chars IN VARCHAR2
) RETURN VARCHAR2
UPDATE zz_file
SET zz02 = TRANSLATE(zz02, 'apyi', 'gpyi')
WHERE SUBSTR(zz02, 6, 4) = 'gpyi';
注意:TRANSLATE 會替換欄位中所有符合 from_chars 的字元,若需精確控制替換位置,請搭配 SUBSTR/INSTR 或改用 REPLACE 配合條件判斷。