構文
substr::=
用途
SUBSTR
の各ファンクションは、char
のposition
の文字から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
のデータ型は、CHAR
、VARCHAR2
、NCHAR
、NVARCHAR2
、CLOB
またはNCLOB
です。例外は、SUBSTRC
、SUBSTR2
およびSUBSTR4
です。これらでは、char
をCLOB
およびNCLOB
のいずれにもできません。position
およびsubstring_length
は、NUMBER
データ型か、または暗黙的にNUMBER
に変換可能な任意のデータ型で、整数である必要があります。戻り値は、char
と同じデータ型です。引数としてSUBSTR
に渡された浮動小数点数は、自動的に整数に変換されます。
関連項目: 異なるロケールでのSUBSTR ファンクションおよび長さセマンティクスの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
例
次の例では、「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