SUBSTR

構文

substr::=

目的

SUBSTRの各ファンクションは、charpositionの文字からsubstring_length文字分の文字列を抜き出して戻します。SUBSTRは、入力文字セットによって定義された文字を使用して、長さを計算します。SUBSTRBには、文字でなくバイトを使用します。SUBSTRCは、完全なUnicodeキャラクタを使用します。SUBSTR2は、UCS2コードポイントを使用します。SUBSTR4は、UCS4コードポイントを使用します。

  • positionが0の場合、1として処理されます。

  • positionが正の場合、Oracle Databaseはcharの始めから数えて最初の文字を検索します。

  • positionが負の場合、Oracleはcharの終わりから逆方向に数えます。

  • substring_lengthを指定しないと、Oracleはcharの終わりまでのすべての文字を戻します。substring_lengthが1より小さい場合、NULLを戻します。

charのデータ型は、CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOBです。例外は、SUBSTRCSUBSTR2およびSUBSTR4です。これらでは、charCLOBおよびNCLOBのいずれにもできません。positionおよびsubstring_lengthは、NUMBERデータ型か、または暗黙的にNUMBERに変換可能な任意のデータ型で、整数である必要があります。戻り値は、charと同じデータ型です。引数としてSUBSTRに渡された浮動小数点数は、自動的に整数に変換されます。

関連項目:

次の例では、「ABCDEFG」の指定されたサブストリングを戻します。

SELECT SUBSTR('ABCDEFG',3,4) "Substring"
     FROM DUAL;
 
Substring
---------
CDEF

SELECT SUBSTR('ABCDEFG',-5,4) "Substring"
     FROM DUAL;

Substring
---------
CDEF

データベース文字セットがダブルバイトの場合を想定します。

SELECT SUBSTRB('ABCDEFG',5,4.2) "Substring with bytes"
     FROM DUAL;

Substring with bytes
--------------------
CD