次の方法で共有


文字列関数

次の表に、文字列操作関数の一覧を示します。 アプリケーションは、 SQLGetInfo SQL_STRING_FUNCTIONS の 情報型 を使用して呼び出すことによって、ドライバーでサポートされている文字列関数を決定できます。

解説

string_expとして示される引数には、列の名前、character-string-literal、または基になるデータ型をSQL_CHAR、SQL_VARCHAR、またはSQL_LONGVARCHARとして表すことができる別のスカラー関数の結果を指定できます。

character_expとして示される引数は、可変長の文字列です。

startlength、またはcountとして示される引数には、数値リテラルまたは別のスカラー関数の結果を指定できます。基になるデータ型は、SQL_TINYINT、SQL_SMALLINT、またはSQL_INTEGERとして表すことができます。

ここに示す文字列関数は 1 から始まります。つまり、文字列の最初の文字は文字 1 です。

SQL-92 に合わせて、ODBC 3.0 では、BIT_LENGTH、CHAR_LENGTH、CHARACTER_LENGTH、OCTET_LENGTH、POSITION の文字列スカラー関数が追加されました。

関数 説明
ASCII(string_exp) (ODBC 1.0) string_expの左端の文字の ASCII コード値を整数として返します。
BIT_LENGTH(string_exp) (ODBC 3.0) 文字列式の長さ (ビット単位) を返します。

文字列データ型に対してのみ機能しないため、 string_exp を文字列に暗黙的に変換するのではなく、指定されたデータ型の (内部) サイズを返します。
CHAR(code) (ODBC 1.0) code で指定された ASCII コード値を持つ文字を返します。 codeの値は 0 から 255 の範囲にする必要があります。それ以外の場合、戻り値はデータ ソースに依存します。
CHAR_LENGTH(string_exp) (ODBC 3.0) 文字列式のデータ型が文字である場合は、文字列式の文字の長さを返します。それ以外の場合は、文字列式の長さをバイト単位 (ビット数を 8 で割った数より小さい最小の整数) で返します (この関数は CHARACTER_LENGTH 関数と同じです)。
CHARACTER_LENGTH(string_exp) (ODBC 3.0) 文字列式のデータ型が文字である場合は、文字列式の文字の長さを返します。それ以外の場合は、文字列式の長さをバイト単位 (ビット数を 8 で割った数より小さい最小の整数) で返します (この関数は、CHAR_LENGTH関数と同じです)。
CONCAT(string_exp1,string_exp2) (ODBC 1.0) string_exp2string_exp1に連結した結果の文字列を返します。 結果の文字列は DBMS に依存します。 たとえば、 string_exp1 で表される列に NULL 値が含まれている場合、DB2 は NULL を返しますが、SQL Server は NULL 以外の文字列を返します。
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) string_exp1string_exp2の SOUNDEX 関数によって返される値の差を示す整数値を返します。
INSERT(string_exp1, start, length, string_exp2) (ODBC 1.0) string_exp1からlength文字が削除され、開始で始まり、string_exp2string_exp、start から始まるに挿入された文字列を返します。
LCASE(string_exp) (ODBC 1.0) すべての大文字を小文字に変換して、 string_expの文字列と同じ文字列を返します。
LEFT(string_exp, count) (ODBC 1.0) string_expの左端のcount文字を返します。
LENGTH(string_exp) (ODBC 1.0) 末尾の空白を除く string_exp, の文字数を返します。

LENGTH は文字列のみを受け入れます。 したがって、 string_exp を文字列に暗黙的に変換し、(データ型の内部サイズではなく) この文字列の長さを返します。
LOCATE(string_exp1, string_exp2[, start]) (ODBC 1.0) string_exp2内で最初に発生したstring_exp1の開始位置を返します。 省略可能な引数 start が指定されていない限り、string_exp1の最初の出現位置の検索は、string_exp2の最初の文字位置から始まります。 startを指定した場合、検索はstartの値で示される文字位置で始まります。 string_exp2の最初の文字位置は、値 1 で示されます。 string_exp2内にstring_exp1が見つからない場合は、値 0 が返されます。

string_exp1string_exp2、および start 引数を使用してアプリケーションが LOCATE スカラー関数を呼び出すことができる場合、SQLGetInfo が SQL_STRING_FUNCTIONS の Option で呼び出されたときに、ドライバーはSQL_FN_STR_LOCATEを返します。 string_exp1引数とstring_exp2引数のみを使用してアプリケーションが LOCATE スカラー関数を呼び出すことができる場合、SQLGetInfo が SQL_STRING_FUNCTIONS の Option で呼び出されると、ドライバーはSQL_FN_STR_LOCATE_2を返します。 2 つまたは 3 つの引数を持つ LOCATE 関数の呼び出しをサポートするドライバーは、SQL_FN_STR_LOCATEとSQL_FN_STR_LOCATE_2の両方を返します。
LTRIM(string_exp) (ODBC 1.0) 先頭の空白が削除された string_expの文字を返します。
OCTET_LENGTH(string_exp) (ODBC 3.0) 文字列式の長さ (バイト単位) を返します。 結果は、ビット数を 8 で割った値以上の最小の整数になります。

文字列データ型に対してのみ機能しないため、 string_exp を文字列に暗黙的に変換するのではなく、指定されたデータ型の (内部) サイズを返します。
POSITION(character_expINcharacter_exp) (ODBC 3.0) 2 番目の文字式の最初の文字式の位置を返します。 結果は、実装で定義された有効桁数と小数点以下桁数が 0 の正確な数値になります。
REPEAT(string_exp,count) (ODBC 1.0) 繰り返されるstring_exp構成される文字列を返します。
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) string_exp2の出現箇所を string_exp1 検索し、string_exp3に置き換えます。
RIGHT(string_exp, count) (ODBC 1.0) string_expの右端の count 文字を返します。
RTRIM(string_exp) (ODBC 1.0) 末尾の空白が削除された string_exp の文字を返します。
SOUNDEX(string_exp) (ODBC 2.0) string_exp内の単語のサウンドを表すデータ ソースに依存する文字列を返します。 たとえば、SQL Server は 4 桁の SOUNDEX コードを返します。Oracle は、各単語のふりがなを返します。
SPACE(count) (ODBC 2.0) count スペースで構成される文字列を返します。
SUBSTRING(string_exp, start, length**)** (ODBC 1.0) length 文字のstartで指定された文字位置から始まるstring_expから派生した文字列を返します。
UCASE(string_exp) (ODBC 1.0) すべての小文字を大文字に変換して、 string_expの文字列と等しい文字列を返します。