ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース7.0
E05176-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

文字列関数

TimesTenでは、次の文字列関数がSELECT文でサポートされています。

文字列関数を指定する選択済の値によって、SELECTがマテリアライズされます。これによって時間と領域の両方においてオーバーヘッドが発生します。

SUBSTR

CHARまたはNCHAR文字列のサブストリングを表すCHAR、VARCHAR2またはNVARCHAR2を返します。返されたサブストリングは、指定された文字数で、指定された開始点から始まり、文字列の開始または終了のいずれかに関連します。

SQL構文

{SUBSTR | SUBSTRB | SUBSTR4}=(char, m, n)

パラメータ

SUBSTRには、次のパラメータがあります。

パラメータ
説明
char
この関数がサブストリングを返す対象の文字列です。charがCHAR文字列の場合、結果はCHARまたはVARCHAR2文字列になります。charがNCHAR文字列の場合、結果はNVARCHAR2文字列になります。
m
サブストリングを開始する位置です。mが正の値の場合、返される文字列の最初の文字は、charで指定される文字列の最初からm文字目になります。mが負の値の場合、文字列の最後からm文字目になります。ABS(m)が文字列の長さを超える場合は、NULL値が返されます。
n
サブストリングに含まれる文字数です。nが省略された場合、charで指定した文字列の終わりまでのすべての文字が返されます。nが1より小さいか、char、mまたはnがNULLの場合、NULLが返されます。

説明

例3.56

名前の最初の3文字を選択します。

SELECT SUBSTR(name,1,3) FROM employees;

例3.57

名前の最後の5文字を選択します。

SELECT SUBSTR(name,-1,5) FROM employees;

INSTR

ある文字列が別の文字列内に検出された場合に、その最初の位置を識別します。サブストリングが文字列内で検出されない場合は0(ゼロ)が返されます。返される位置は、常にCharExpr2の開始と関連します。INSTRは、NUMBER型を返します。

TimesTen型モードを使用している場合、INSTR関数の詳細は、TimesTenの以前のリリースのドキュメントを参照してください。

SQL構文

{INSTR | INSTRB | INSTR4} ( CharExpr2, CharExp1 [,m[,n]])

パラメータ

INSTRには、次のパラメータがあります。

パラメータ
説明
CharExpr1
文字列CharExpr2で検出されるサブストリングです。CharExpr1CharExpr2にない場合は、0(ゼロ)が返されます。文字列のいずれかの長さが0(ゼロ)の場合は、NULLが返されます。
CharExpr2
CharExpr1の位置を検出するために検索される文字列です。
m
検索を開始する位置です(オプション)。mが0(ゼロ)に指定された場合、結果は0(ゼロ)です。mが正の値の場合、検索はCharExpr2+mから開始されます。mが負の値の場合、検索はCharExpr2の終わりからm文字目で開始されます。
n
nには正の値を指定する必要があります。検索結果では、CharExpr1n番目の出現位置が返されます。

説明

INSTRは、キャラクタ・セットで定義された文字を使用して文字列を計算します。INSTRBは、文字数ではなくバイト数を使用します。INSTR4は、UCS4コード・ポイントを使用します。

例3.58

次の例では、instrを使用して、文字列'Washington'で使用されるサブストリング'ing'の位置を判別します。

Command>   select instr ('Washington', 'ing') from dual;

< 5 >

1 row found.

LENGTH

式内の指定した文字列の長さを返します。LENGTHはNUMBER型を返します。

TimesTen型モードを使用している場合、LENGTH関数の詳細は、TimesTenの以前のリリースのドキュメントを参照してください。

SQL構文

{LENGTH|LENGTHB|LENGTH4} (CharExpr)

パラメータ

LENGTHには、次のパラメータがあります。

パラメータ
説明
CharExpr
長さを返す対象の文字列です。

説明

LENGTH関数は、CharExprの長さを返します。LENGTHは、キャラクタ・セットで定義された文字を使用して長さを計算します。LENGTHBは、文字数ではなくバイト数を使用します。LENGTH4は、UCS4コード・ポイントを使用します。

例3.59

文字列'William'の長さを判別します。

Command> SELECT LENGTH('William') from dual;

< 7 >

1 row found.