Oracleでは、TRANSLATE(...USING)
関数は、その引数を、データベースの文字セットと国別の文字セットの間の変換用に指定された文字セットに変換します。
この関数をTRANSLATE()
と混同しないでください。 関数。1回の操作で複数の単一文字の1対1の置換を行うことができます。
TRANSLATE(...USING)
関数は、主にANSI互換性のためにOracleでサポートされています。 TO_CHAR()
を使用することをお勧めします およびTO_NCHAR()
代わりに機能します。
構文
構文は次のようになります:
TRANSLATE ( char USING
{ CHAR_CS | NCHAR_CS }
)
char
の場所 変換される式であり、:
-
USING
の指定CHAR_CS
引数はchar
を変換します データベースの文字セットに。出力データ型はVARCHAR2
です。 。 -
USING
の指定NCHAR_CS
引数はchar
を変換します 国の文字セットに。出力データ型はNVARCHAR2
です。 。
例
基本的な例は次のとおりです。
SELECT
TRANSLATE('Cat' USING CHAR_CS) AS CHAR_CS,
TRANSLATE('Cat' USING NCHAR_CS) AS NCHAR_CS
FROM DUAL;
結果:
CHAR_CS NCHAR_CS __________ ___________ Cat Cat
違いを示すために、DUMP()
に渡すと次のようになります。 機能:
SELECT
DUMP(TRANSLATE('Cat' USING CHAR_CS), 17) AS CHAR_CS,
DUMP(TRANSLATE('Cat' USING NCHAR_CS), 17) AS NCHAR_CS
FROM DUAL;
結果:
CHAR_CS NCHAR_CS _____________________ ______________________________ Typ=1 Len=3: C,a,t Typ=1 Len=6: ^@,C,^@,a,^@,t
ヌル引数
null
を渡す 引数がnull
を返すため :
SET NULL 'null';
SELECT
TRANSLATE(null USING CHAR_CS) AS Result
FROM DUAL;
結果:
null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
引数がありません
char
を渡さずに関数を呼び出す 引数はエラーになります:
SELECT TRANSLATE(USING CHAR_CS)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT TRANSLATE(USING CHAR_CS) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: