SUBSTR
構文
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と同じデータ型ですが、例外として、CHAR引数の場合はVARCHAR2値が返され、NCHAR引数の場合はNVARCHAR2値が返されます。引数としてSUBSTRに渡された浮動小数点数は、自動的に整数に変換されます。
関連項目:
-
文字長の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』および『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。
-
異なるロケールでの
SUBSTRファンクションおよび長さセマンティクスの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 -
SUBSTRの文字の戻り値に割り当てる照合を定義する照合導出ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
例
次の例では、「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