プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

CONVERT

構文

convert.gifの説明が続きます
図convert.gifの説明

用途

CONVERTは、文字列を、あるキャラクタ・セットから別のキャラクタ・セットに変換します。

CHARVARCHAR2の戻り値は、VARCHAR2です。NCHARNVARCHAR2の戻り値は、NVARCHAR2です。CLOBの戻り値はCLOBNCLOBの戻り値はNCLOBです。

変換先キャラクタ・セットと変換元キャラクタ・セットの引数として、リテラルまたはキャラクタ・セットの名前を含んでいる列を指定できます。

完全に文字を変換するには、変換先キャラクタ・セットが変換元キャラクタ・セットで定義されているすべての文字を表現できる必要があります。文字が変換先キャラクタ・セットに存在しないと、置換文字が使用されます。置換文字は、キャラクタ・セット定義の一部として定義できます。


注意:

Oracle Databaseの現行のリリースでは、CONVERTファンクションを使用しないことをお薦めします。CONVERTの戻り値は文字データ型であるため、そのデータ型に応じてデータベース・キャラクタ・セットまたは各国語キャラクタ・セットのいずれかになります。この2つのキャラクタ・セットのどちらでもないdest_char_setは、サポートされません。char引数とsource_char_setの要件は同じです。このため、ファンクションの実用的な用途は、誤ったキャラクタ・セットで格納されているデータの修正にかぎられます。

データベース・キャラクタ・セットと各国語キャラクタ・セットのどちらでもない値は、RAWまたはBLOBとして処理して格納する必要があります。PL/SQLパッケージUTL_RAWおよびUTL_I18Nのプロシージャ(たとえば、UTL_RAW.CONVERT)では、このような値の限定的な処理が可能です。パッケージUTL_FILEUTL_TCPUTL_HTTPおよびUTL_SMTP内でRAW引数を受け入れるプロシージャを使用すると、処理されたデータを出力できます。


次の例では、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リファレンス』を参照してください。