このトピックでは、文字列値の識別と操作に使用される関数と演算子について説明します。
文字列には、CHAR、VARCHAR2、およびCLOB型の値が含まれます。 特に指定のない限り、次の表に示す関数は、これらすべての種類の値に対して機能します。 ただし、この点に注意してください。CHAR文字列型を使用すると、文字列にスペースが自動的に追加される場合があります。 ほとんどの場合、次の関数は、データを文字列型の値に変換することにより、非文字列型のデータに対しても機能します。
| 関数 | 戻り値の型 | 説明 | 例 | 結果 |
| 文字列 | | 文字列 | CLOB | 文字列連結 | 'Polar' | | 'DB' | PolarDB |
| CONCAT (文字列、文字列) | CLOB | 文字列連結 | CONCAT('a' | | 'b') | ab |
| HEXTORAW(varchar2) | RAW | VARCHAR2値をRAW値に変換する | HEXTORAW('303132') | '012' |
| RAWTOHEX (生) | VARCHAR2 | RAW値をHEXADECIMAL値に変換します | RAWTOHEX('012') | '303132' |
| INSTR(string, set, [ start [, occurrence ] ]) | INTEGER | 文字列内の文字セットの位置を検索し、文字列の先頭の位置から開始し、セットの最初、2番目、3番目などの出現を探します。 セットが見つからない場合は0を返します。 | INSTR (「PETER PIPER PICKED a PECK of PICKLED PEPPERS」、「PI」、1,3) | 30 |
| INSTRB (文字列、セット、開始) | INTEGER | スタートから始まる、文字列内のセットの位置を返します。 setが見つからない場合は0を返します。 | INSTRB (「PETER PIPER PICKED a PECK of PICKLED PEPPERS」、「PICK」、14) | 30 |
| INSTRB (文字列、セット、開始、発生) | INTEGER | 文字列内のsetの指定されたオカレンスの位置を返します。 setが見つからない場合は0を返します。 | INSTRB (「PETER PIPER PICKED a PECK of PICKLED PEPPERS」、「PICK」、1、2) | 30 |
| LOWER (文字列) | CLOB | 文字列を小文字に変換する | LOWER('TOM') | トム |
| SUBSTR(string, start [, count ]) | CLOB | 先頭から文字列を抽出し、文字をカウントします。 countが指定されていない場合、文字列は先頭から末尾までクリップされます。 | SUBSTR (「これはテストです」、6,2) | の値が |
| SUBSTRB(string, start [, count ]) | CLOB | startとcount以外はSUBSTRと同じバイト数です。 | SUBSTRB('abc',3) (2バイト文字セットを想定) | c |
| SUBSTR2(string, start[, count ]) | CLOB | SUBSTRのエイリアス。 | SUBSTR2 (「これは証明です」、6,2) | の値が |
| SUBSTR2(string, start [, count ]) | CLOB | SUBSTRBのエイリアス。 | SUBSTR2('abc',3) (2バイト文字セットを想定) | c |
| SUBSTR4(string, start [, count ]) | CLOB | SUBSTRのエイリアス。 | SUBSTR4 (「これはテストです」、6,2) | の値が |
| SUBSTR4(string, start [, count ]) | CLOB | SUBSTRBのエイリアス。 | SUBSTR4('abc',3) (2バイト文字セットを想定) | c |
| SUBSTRC(string, start [, count ]) | CLOB | SUBSTRのエイリアス。 | SUBSTRC (「これはテストです」、6,2) | の値が |
| SUBSTRC(string, start [, count ]) | CLOB | SUBSTRBのエイリアス。 | SUBSTRC('abc',3) (2バイト文字セットを想定) | c |
| トリム ([ LEADING | TRAILING | BOTH ] [ characters ] FROM string) | CLOB | 文字のみを含む最長の文字列 (デフォルトではスペース) を文字列の開始 /終了 /両端から削除します。 | トリム (両方とも 'xTomxx' から 'x') | Tom |
| LTRIM(string [, set]) | CLOB | 指定された文字列の左からsetで指定されたすべての文字を削除します。 setが指定されていない場合、デフォルトでは空白が使用されます。 | LTRIM('abcdefghi' 、'abc') | defghi |
| RTRIM(string [, set]) | CLOB | 指定した文字列の右からsetで指定した文字をすべて削除します。 setが指定されていない場合、デフォルトでは空白が使用されます。 | RTRIM('abcdefghi' 、'ghi') | abcdef |
| アッパー (文字列) | CLOB | 文字列を大文字に変換する | アッパー ('tom') | トム |
次の表に、その他の使用可能な文字列操作関数を示します。 一部の関数は、比較演算子にリストされているSQL標準の文字列関数を実装するために内部的な方法で使用されます。
| 関数 | 戻り値の型 | 説明 | 例 | 結果 |
| ASCII (文字列) | INTEGER | 引数の最初のバイトのASCIIコード | ASCII('x') | 120 |
| CHR(INTEGER) | CLOB | 与えられたASCIIコードを持つ文字 | CHR(65) | HTTP ステータスコードが |
| デコード (expr、exprla、exprlb [、expr2a、expr2b ]... [, デフォルト]) | expr1b、expr2b、... 、デフォルトの引数型と同じ | expr1a、expr2aなどとのexprの最初の一致を見つけます。 一致が見つかった場合、対応するパラメータペアexpr1b、expr2bなどを返します。 一致が見つからない場合は、デフォルトを返します。 一致が見つからず、デフォルトが指定されていない場合は、nullを返します。 | DECODE(3、1、「One」、2、「Two」、3、「Three」、「Not found」) | 3 |
| INITCAP (文字列) | CLOB | 各単語の最初の文字を大文字に、残りの文字を小文字に変換します。 単語は、非英数字によって分離された英数字のシーケンスである。 | INITCAP('hi THOMAS') | こんにちはトーマス |
| LENGTH | INTEGER | 文字列値の文字数を返します。 | 長さ ('Coted''Azur') | 11 |
| 長さ | INTEGER | この関数はLENGTHと同じ機能です。関数名は互換性のためにサポートされています。 | LENGTHC ('Cote d''Azur') | 11 |
| 長さ2 | INTEGER | この関数はLENGTHと同じ機能です。関数名は互換性のためにサポートされています。 | LENGTH2 ('Cote d''Azur') | 11 |
| LENGTH4 | INTEGER | この関数はLENGTHと同じ機能です。関数名は互換性のためにサポートされています。 | LENGTH4 ('Cote d''Azur') | 11 |
| LENGTHB | INTEGER | 指定された値を保持するために必要なバイト数を返します。 | LENGTHB ('Cote d''Azur') | 12 |
| LPAD (文字列、長さINTEGER [, fill ]) | CLOB | 文字列をサイズ、長さに塗りつぶし、文字の前に塗りつぶします (デフォルトではスペース) 。 文字列がすでに長さより長い場合は、切り捨てられます (右側) 。 | LPAD('hi', 5, 'xy') | xyxhi |
| REPLACE(string, search string [, replace string] | CLOB | 文字列内の1つの値を別の値に置き換えます。 replace stringに値を指定しない場合、search_string値が見つかった場合は削除されます。 | リプレース ('GEORGE' 、'GE' 、'EG') | EGOREG |
| RPAD (文字列、長さINTEGER [, fill ]) | CLOB | 文字を追加して文字列をサイズ、長さ、Fill (デフォルトではスペース) に塗りつぶします。 文字列がすでに長さより長い場合は、切り捨てられます。 | RPAD('hi', 5, 'xy') | hixyx |
| TRANSLATE(string, from, to) | CLOB | fromセット内の文字と一致する文字列内の文字は、セット内の対応する文字に置き換えられます。 | TRANSLATE('12345' 、'14' 、'ax') | a23x5 |