Oracle Databaseでは、ASCIISTR() 関数は、データベースの文字セットで指定された文字列のASCIIバージョンを返します。
ASCIISTR(char) charの場所 任意の文字セットの文字列または文字列に解決される式です。
非ASCII文字は\xxxxの形式に変換されます 、ここでxxxx UTF-16コードユニットを表します。
SELECT ASCIISTR('Fish')
FROM DUAL; 結果:
Fish
この場合、入力はASCII文字を使用しているため、結果は入力と同じです。
SELECT ASCIISTR('ปลา')
FROM DUAL; 結果:
\0E1B\0E25\0E32
ここでは、同等のASCIIで返される3つの文字のそれぞれを取得します。
この場合、入力(ปลา )はタイ語で「魚」を意味します。これは「Plā」と発音できます。
Plāを渡すと次のようになります ASCIISTR()へ 機能:
SELECT ASCIISTR('Plā')
FROM DUAL; 結果:
Pl\0101
この場合、渡した最初の2文字はASCII文字ですが、3番目の文字は非ASCII文字です。したがって、この関数は最初の2文字を変更せずに返し、3番目の文字をASCIIに変換して返します。
これがน้ำを通過するもう1つのものです 、これはタイ語で「水」を意味します:
SELECT ASCIISTR('น้ำ')
FROM DUAL; 結果:
\0E19\0E49\0E33
nullの場合 、結果はnullです : SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL; 結果:
null
デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECTの結果としてnull値が発生するたびに空白を返します。 ステートメント。
ただし、SET NULLを使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。
ASCIISTR()の呼び出し 引数がないとエラーが発生します:
SELECT ASCIISTR()
FROM DUAL; 結果:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"