構文
用途
CONVERT
は、文字列を、あるキャラクタ・セットから別のキャラクタ・セットに変換します。
引数char
は変換する値です。charは、CHAR
、VARCHAR2
、NCHAR
、NVARCHAR2
、CLOB
またはNCLOB
データ型です。
引数dest_char_set
は、char
が変換されるキャラクタ・セットの名前です。
引数source_char_set
は、char
をデータベースに格納しているキャラクタ・セットの名前です。デフォルト値はデータベース・キャラクタ・セットです。
CHAR
とVARCHAR2
の戻り値は、VARCHAR2
です。NCHAR
とNVARCHAR2
の戻り値は、NVARCHAR2
です。CLOB
の戻り値はCLOB
、NCLOB
の戻り値はNCLOB
です。
変換先キャラクタ・セットと変換元キャラクタ・セットの引数として、リテラルまたはキャラクタ・セットの名前を含んでいる列を指定できます。
完全に文字を変換するには、変換先キャラクタ・セットが変換元キャラクタ・セットで定義されているすべての文字を表現できる必要があります。文字が変換先キャラクタ・セットに存在しないと、置換文字が使用されます。置換文字は、キャラクタ・セット定義の一部として定義できます。
注意: Oracle Databaseの現行のリリースでは、CONVERT ファンクションを使用しないことをお薦めします。CONVERT の戻り値は文字データ型であるため、そのデータ型に応じてデータベース・キャラクタ・セットまたは各国語キャラクタ・セットのいずれかになります。この2つのキャラクタ・セットのどちらでもないdest_char_set は、サポートされません。char 引数とsource_char_set の要件は同じです。このため、ファンクションの実用的な用途は、誤ったキャラクタ・セットで格納されているデータの修正にかぎられます。
データベース・キャラクタ・セットと各国語キャラクタ・セットのどちらでもない値は、 |
例
次の例では、Latin-1文字列をASCIIに変換するキャラクタ・セットの変換を示します。これは、同じ文字列をWE8ISO8859P1データベースからUS7ASCIIデータベースへインポートした場合と同じ結果が得られます。
SELECT CONVERT('Ä Ê Í Õ Ø A B C D E ', 'US7ASCII', 'WE8ISO8859P1') FROM DUAL; CONVERT('ÄÊÍÕØABCDE' --------------------- A E I ? ? A B C D E ?
次のようにV$NLS_VALID_VALUES
ビューを問い合せて、有効なキャラクタ・セットのリストを取得できます。
SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET';
関連項目: Oracle Databaseでサポートされているキャラクタ・セットの一覧は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。V$NLS_VALID_VALUES ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |