首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 字串處理函數大全:PL/SQL 開發必備參考

     編輯:Oracle 資料庫基礎

回傳字元值的字串函數

函數語法功能說明範例
CHRCHR(n)依編碼回傳字元,ASCII 反函數CHR(65) → 'A'
CONCATCONCAT(s1, s2)串接兩字串,等同 ||CONCAT('AB','CD') → 'ABCD'
INITCAPINITCAP(str)每單字首字大寫,其餘小寫INITCAP('hello world') → 'Hello World'
LOWER/UPPERLOWER(str)/UPPER(str)全轉小寫/大寫UPPER('AbC') → 'ABC'
LPAD/RPADLPAD(s1,n[,s2])左/右填充至長度 n,預設空格LPAD('9',5,'0') → '00009'
LTRIM/RTRIM/TRIMLTRIM(s1[,s2])移除左/右/兩側指定字元(預設空格)TRIM(' ABC ') → 'ABC'
REPLACEREPLACE(s, old, new)替換所有 old 為 new,new 可省略(刪除)REPLACE('A-B','-','') → 'AB'
SUBSTRSUBSTR(s, pos[,len])擷取子字串,pos 可為負(從右算)SUBSTR('ABCDE',2,2) → 'BC'
TRANSLATETRANSLATE(s, from, to)逐字元對應替換,功能強於 REPLACETRANSLATE('123','12','AB') → 'AB3'
SOUNDEXSOUNDEX(str)回傳發音代碼,模糊比對拼音相似詞SOUNDEX('SMITH') = SOUNDEX('SMYTHE')
NLS_INITCAP/LOWER/UPPERNLS_UPPER(str[,param])支援多語言排序規則的大小寫轉換NLS_UPPER('ß','NLS_SORT=XGERMAN') → 'SS'

回傳數值的字串函數

函數語法功能說明
ASCIIASCII(str)回傳首字元編碼值
INSTRINSTR(s1, s2[, pos[, nth]])搜尋 s2 在 s1 第 nth 次出現位置,pos 可負
INSTRBINSTRB(...)同 INSTR,但以位元組為單位
LENGTHLENGTH(str)字元長度 (CHAR 含尾端空格)
LENGTHBLENGTHB(str)位元組長度
NLSSORTNLSSORT(str[,param])回傳排序用二進位鍵值

實戰常見組合技

-- 1. 去除前後空格並統一大寫
UPPER(TRIM(col))

-- 2. 固定長度編號產生 (流水號左補 0)
LPAD(TO_CHAR(seq.NEXTVAL), 8, '0')  -- 00000001

-- 3. 字串切分 (以逗號分隔)
SUBSTR(str, 1, INSTR(str, ',')-1)   -- 第一段

-- 4. 多重替換 (TRANSLATE 單字元對應)
TRANSLATE(phone, '()- ', '')        -- 移除電話號碼格式字元

-- 5. 模糊搜尋同音異寫
WHERE SOUNDEX(name) = SOUNDEX('Johnson')

字元型別儲存上限提醒

  • VARCHAR2:4,000 位元組 (8i 以上)
  • CHAR:2,000 位元組
  • CLOB:4 GB
  • PL/SQL 變數 VARCHAR2 可達 32,767 位元組
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved