ORACLEの文字列関数のリファレンスです。
※当ページにおいて、検索結果イメージの半角スペースは【_】、NULLは【NULL】と表現しています。
CONCAT
文法
CONCAT(引数1[文字型],引数2[文字型])
戻り値
文字型
説明
引数1と引数2を連結し戻す
引数1と引数2の両方がNULLの場合、NULLを戻す
SELECT a
,b
,CONCAT(a,b) func
FROM test_table
;
A B FUNC
----- ----- ------
ABC DEF ABCDEF
NULL DEF DEF
ABC NULL ABC
NULL NULL NULL
備考
連結演算子(||)が用意されているため、
使いやすい連結演算子の方が使われることが多い
SELECT a
,b
,CONCAT(a,b) func
,a||b oper
FROM test_table
;
A B FUNC OPER
----- ----- ------ ------
ABC DEF ABCDEF ABCDEF
INITCAP
文法
INITCAP(引数1[文字型])
戻り値
文字型
説明
引数1の各単語の先頭を大文字に、それ以外を小文字に変換し戻す
SELECT a
,INITCAP(a) func
FROM test_table
;
A FUNC
---------------- ----------------
test Test
TEST Test
THIS IS A TEST This Is A Test
NULL NULL
INSTR・INSTRB
文法
INSTR(引数1[文字型],引数2[文字型])
INSTR(引数1[文字型],引数2[文字型],引数3[数値型])
INSTR(引数1[文字型],引数2[文字型],引数3[数値型],引数4[数値型])
INSTRB(引数1[文字型],引数2[文字型])
INSTRB(引数1[文字型],引数2[文字型],引数3[数値型])
INSTRB(引数1[文字型],引数2[文字型],引数3[数値型],引数4[数値型])
戻り値
数値型
説明
引数1の文字列に対して、引数2の文字列を検索し、
引数3の桁数から検索し、引数4で何番目に現れる文字列かを指定する
検索した結果、見つかった場合は先頭からの位置を戻す
見つからなかった場合は、0を戻す
引数4を省略した場合は、1(最初に見つかった文字列)と同義
引数3を省略した場合は、1(先頭から検索)と同義
INSTRは、全角文字も1文字とカウントする
INSTRBは、バイト単位でカウントするので全角文字は2文字とカウントする
SELECT a
,INSTR(a,'CD') func11
,INSTR(a,'CD',5) func12
,INSTR(a,'CD',1,2) func13
,INSTRB(a,'CD') func21
,INSTRB(a,'CD',5) func22
,INSTRB(a,'CD',1,2) func23
FROM test_table
;
A FUNC11 FUNC12 FUNC13 FUNC21 FUNC22 FUNC23
-------- ------ ------ ------ ------ ------ ------
ABCDEFCD 3 7 7 3 7 7
AAAAAAAA 0 0 0 0 0 0
SELECT a
,INSTR(a,'い') func1
,INSTRB(a,'い') func2
FROM test_table
;
A FUNC1 FUNC2
----- ----- -----
あい 2 3
備考1
引数3が0の場合、0を戻す
引数3が負数の場合、末尾の指定桁からの逆順検索となる
SELECT a
,INSTR(a,'CD',0) func11
,INSTR(a,'CD',-1) func12
,INSTR(a,'CD',-1,2) func13
,INSTRB(a,'CD',0) func21
,INSTRB(a,'CD',-1) func22
,INSTRB(a,'CD',-1,2) func23
FROM test_table
;
A FUNC11 FUNC12 FUNC13 FUNC21 FUNC22 FUNC23
-------- ------ ------ ------ ------ ------ ------
ABCDEFCD 0 7 3 0 7 3
備考2
引数4が0以下の場合、エラーとなる
SELECT a
,INSTR(a,'CD',1,0) func1
,INSTRB(a,'CD',1,0) func2
FROM test_table
;
ORA-01428: 引数'0'が有効範囲外です
LENGTH・LENGTHB
文法
LENGTH(引数1[文字型])
LENGTHB(引数1[文字型])
戻り値
数値型
説明
引数1の文字列の文字数を戻す
LENGTHは、全角文字も1文字とカウントする
LENGTHBは、バイト単位でカウントするので全角文字は2文字とカウントする
SELECT a
,LENGTH(a) func1
,LENGTHB(a) func2
FROM test_table
;
A FUNC1 FUNC2
--------- ----- -----
ABCDE 5 5
あい 1 2
LOWER
文法
LOWER(引数1[文字型])
戻り値
文字型
説明
引数1を小文字に変換し戻す
SELECT a
,LOWER(a) func
FROM test_table
;
A FUNC
---------------- ----------------
test test
TEST test
THIS IS A TEST this is a test
NULL NULL
LPAD
文法
LPAD(引数1[文字型],引数2[数値型])
LPAD(引数1[文字型],引数2[数値型],引数3[文字型])
※引数3を省略した場合は、半角スペース指定と同義
戻り値
文字型
説明
引数1の先頭に、引数3の文字列を引数2の桁になるまで付与し戻す
SELECT a
,LPAD(a,5) func1
,LPAD(a,5,'0') func2
,LPAD(a,5,'012') func3
FROM test_table
;
A FUNC1 FUNC2 FUNC3
---- ------ ------ ------
ABC __ABC 00ABC 01ABC
備考1
引数1の桁数が引数2を超える場合、引数1の先頭から引数の桁数だけ戻す
SELECT a
,LPAD(a,3) func
FROM test_table
;
A FUNC
------ ----
ABCDE ABC
備考2
引数1と引数2と引数3のいずれかがNULLの場合、NULLを戻す
SELECT a
,b
,c
,LPAD(a,b,c) func
FROM test_table
;
A B C FUNC
----- ----- ----- -----
NULL 5 0 NULL
ABC NULL 0 NULL
ABC 5 NULL NULL
LTRIM
文法
LTRIM(引数1[文字型])
LTRIM(引数1[文字型],引数2[文字型])
※引数2を省略した場合は、半角スペースの1文字指定と同義
戻り値
文字型
説明
引数1の先頭から、引数2で指定した文字の全てを削除して戻す
SELECT a
,LTRIM(a) func
FROM test_table
;
A FUNC
------ -----
_ABC_ ABC_
SELECT a
,b
,LTRIM(a,b) func
FROM test_table
;
A B FUNC
-------- ------ -----
_ABC_ _ ABC_
0ABC0 0 ABC0
0123ABC 2310 ABC
備考
引数1と引数2のいずれかがNULLの場合、NULLを戻す
SELECT a
,b
,LTRIM(a,b) func
FROM test_table
;
A B FUNC
-------- ------ -----
NULL 0 NULL
0ABC0 NULL NULL
REPLACE
文法
REPLACE(引数1[文字型],引数2[文字型])
REPLACE(引数1[文字型],引数2[文字型],引数3[文字型])
※引数3を省略した場合は、NULL指定(削除)と同義
戻り値
文字型
説明
引数1から、引数2の文字列を引数3の文字列に変換し戻す
引数3を省略した場合、または、NULL指定した場合は、引数2の文字列を削除し戻す
SELECT a
,b
,REPLACE(a,b) func
FROM test_table
;
A B FUNC
------ --- -----
ABCDE BC ADE
SELECT a
,b
,c
,REPLACE(a,b,c) func
FROM test_table
;
A B C FUNC
------ ----- ----- -------
ABCDE BC NULL ADE
ABCDE BC ZYX AZYXDE
RPAD
文法
RPAD(引数1[文字型],引数2[数値型])
RPAD(引数1[文字型],引数2[数値型],引数3[文字型])
※引数3を省略した場合は、半角スペース指定と同義
戻り値
文字型
説明
引数1の末尾に、引数3の文字列を引数2の桁になるまで付与し戻す
SELECT a
,RPAD(a,5) func1
,RPAD(a,5,'0') func2
,RPAD(a,5,'012') func3
FROM test_table
;
A FUNC1 FUNC2 FUNC3
---- ------ ------ ------
ABC ABC__ ABC00 ABC01
備考1
引数1の桁数が引数2を超える場合、引数1の先頭から引数の桁数だけ戻す
SELECT a
,RPAD(a,3) func
FROM test_table
;
A FUNC
------ ----
ABCDE ABC
備考2
引数1と引数2と引数3のいずれかがNULLの場合、NULLを戻す
SELECT a
,RPAD(a,b,c) func
FROM test_table
;
A B C FUNC
----- ----- ----- -----
NULL 5 0 NULL
ABC NULL 0 NULL
ABC 5 NULL NULL
RTRIM
文法
RTRIM(引数1[文字型])
RTRIM(引数1[文字型],引数2[文字型])
※引数2を省略した場合は、半角スペースの1文字指定と同義
戻り値
文字型
説明
引数1の末尾から、引数2で指定した文字の全てを削除して戻す
SELECT a
,RTRIM(a) func
FROM test_table
;
A FUNC
------ -----
_ABC_ _ABC
SELECT a
,b
,RTRIM(a,b) func
FROM test_table
;
A B FUNC
-------- ------ -----
_ABC_ _ _ABC
0ABC0 0 0ABC
ABC0123 2310 ABC
備考
引数1と引数2のいずれかがNULLの場合、NULLを戻す
SELECT a
,b
,RTRIM(a,b) func
FROM test_table
;
A B FUNC
-------- ------ -----
NULL 0 NULL
0ABC0 NULL NULL
SUBSTR・SUBSTRB
文法
SUBSTR(引数1[文字型],引数2[数値型])
SUBSTR(引数1[文字型],引数2[数値型],引数3[文字型])
SUBSTRB(引数1[文字型],引数2[数値型])
SUBSTRB(引数1[文字型],引数2[数値型],引数3[文字型])
戻り値
文字型
説明
引数1の文字列に対して、引数2で指定した桁から引数3で指定した長さの分の文字列を戻す
引数3を省略した場合は、引数2で指定した桁から末尾までの文字列を戻す
SUBSTRは、全角文字も1文字とカウントする
SUBSTRBは、バイト単位でカウントするので全角文字は2文字とカウントする
SELECT a
,SUBSTR(a,3) func11
,SUBSTR(a,3,2) func12
,SUBSTRB(a,3) func21
,SUBSTRB(a,3,2) func22
FROM test_table
;
A FUNC11 FUNC12 FUNC21 FUNC22
---------- --------- --------- --------- ---------
ABCDEF CDEF CD CDEF CD
あいうえお うえお うえ いうえお い
備考1
引数2が0の場合、1として処理する
引数2が負数の場合、末尾の文字からの指定となる
SELECT a
,SUBSTR(a,1,3) func1
,SUBSTR(a,0,3) func2
,SUBSTR(a,-4,3) func3
FROM test_table
;
A FUNC1 FUNC2 FUNC3
------- ----- ----- -----
ABCDEF ABC ABC CDE
備考2
引数3が0以下の場合、NULLを戻す
SELECT a
,SUBSTR(a,3,0) func1
,SUBSTR(a,3,-1) func2
FROM test_table
;
A FUNC1 FUNC2
------- ----- -----
ABCDEF NULL NULL
TO_MULTI_BYTE
文法
TO_MULTI_BYTE(引数1[文字型])
戻り値
文字型
説明
シングルバイト文字を、対応するマルチバイト文字に変換し戻す
英数字や一般的な記号は有効だが、半角カナは変換できない
SELECT a
,TO_MULTI_BYTE(a) func
FROM test_table
;
A FUNC
---- --------
ABC ABC
abc abc
123 123
!"# !”#
アイウ アイウ
TO_SINGLE_BYTE
文法
TO_SINGLE_BYTE(引数1[文字型])
戻り値
文字型
説明
マルチバイト文字を、対応するシングルバイト文字に変換し戻す
英数字や一般的な記号は有効だが、全角カナは変換できない
SELECT a
,TO_SINGLE_BYTE(a) func
FROM test_table
;
A FUNC
------- -------
ABC ABC
abc abc
123 123
!”# !"#
アイウ アイウ
TRANSLATE
文法
TRANSLATE(引数1[文字型],引数2[文字型],引数3[文字型])
戻り値
文字型
説明
引数1の文字列に対して、引数2の文字を引数3の文字に置換し戻す
引数2の全ての文字を、引数3の対応する文字に置換する
引数2には引数3より多い文字を指定でき、
対応する文字がない場合には削除して戻す
SELECT a
,TRANSLATE(a,'BC','ZY') func1
,TRANSLATE(a,'BC','Z') func2
FROM test_table
;
A FUNC1 FUNC2
-------- -------- --------
ABCDEBC AZYDEZY AZDEZ
TRIM
文法
TRIM(引数1[文字型])
TRIM(LEADING FROM 引数1[文字型])
TRIM(LEADING 引数2[文字型] FROM 引数1[文字型])
TRIM(TRAILING FROM 引数1[文字型])
TRIM(TRAILING 引数2[文字型] FROM 引数1[文字型])
TRIM(BOTH FROM 引数1[文字型])
TRIM(BOTH 引数2[文字型] FROM 引数1[文字型])
TRIM(引数2[文字型] FROM 引数1[文字型])
戻り値
文字型
説明
引数1の文字列に対して、先頭または末尾またはその両方から引数2で指定した文字を削除し戻す
LEADINGを指定すると、先頭から指定文字を削除
TRAILINGを指定すると、末尾から指定文字を削除
BOTHを指定すると、先頭と末尾の両方から指定文字を削除
いずれも指定しないと、BOTHと同義(先頭と末尾の両方)
また、引数2を省略した場合は、半角スペース指定と同義
引数1のみを指定した場合は、先頭と末尾の両方から半角スペースを削除し戻す
SELECT a
,TRIM(a) func1
,TRIM(LEADING FROM a) func2
,TRIM(TRAILING FROM a) func3
,TRIM(BOTH FROM a) func4
FROM test_table
;
A FUNC1 FUNC2 FUNC3 FUNC4
------ ------ ------ ------ ------
_ABC_ ABC ABC_ _ABC ABC
SELECT a
,TRIM(LEADING '0' FROM a) func1
,TRIM(TRAILING '0' FROM a) func2
,TRIM(BOTH '0' FROM a) func3
,TRIM('0' FROM a) func4
FROM test_table
;
A FUNC1 FUNC2 FUNC3 FUNC4
------ ------ ------ ------ ------
0ABC0 ABC0 0ABC ABC ABC
備考1
引数2に2文字以上指定するとエラー
SELECT a
,TRIM('01' FROM a) func
FROM test_table
;
ORA-30001: 切捨てセットの文字は1つにする必要があります
備考2
引数1と引数2のいずれかがNULLの場合、NULLを戻す
SELECT a
,TRIM(NULL FROM a) func
FROM test_table
;
A FUNC
------ ------
0ABC0 NULL
SELECT TRIM('0' FROM NULL) func
FROM test_table
;
FUNC
------
NULL
UPPER
文法
UPPER(引数1[文字型])
戻り値
文字型
説明
引数1を大文字に変換し戻す
SELECT a
,UPPER(a) func
FROM test_table
;
A FUNC
---------------- ----------------
test TEST
TEST TEST
this is a test THIS IS A TEST
NULL NULL