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: