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