7.2 明示的なデータ型変換関数

この項では、SQLおよびPL/SQLでCLOBNCLOBおよびBLOBデータ型と他のデータ型との間でデータを変換するための明示的な変換関数について説明します。

  • TO_CLOB(): VARCHAR2NVARCHAR2またはNCLOBからCLOBに変換します

  • TO_NCLOB: VARCHAR2NVARCHAR2またはCLOBからNCLOBに変換します

  • TO_BLOB(varchar|clob, destcsid,[mime_type]): オブジェクトを現在の文字セットからdestcsid内の指定された文字セットに変換します。結果として作成されるオブジェクトはBLOBです。次に、この変換関数の様々な使用方法を示します。

    • TO_BLOB(character, destcsid)
    • TO_BLOB(character, destcsid, mime_type)
    • TO_BLOB(clob, destcsid)
    • TO_BLOB(clob, destcsid, mime_type)

    destcsidが0の場合、データベース文字セットIDに変換されます。パラメータmime_typeは、Secure File LOB列に対するINSERT文およびUPDATE文にのみ適用できます。mime_typeパラメータをSELECT文、一時LOBまたはBasicFile LOBで使用した場合、無視されます。

  • TO_BLOB(varchar): BLOBに変換する前に入力をRAWに変換します。つまり、TO_BLOB(HEXTORAW(varchar))TO_BLOB(varchar)は同じです。

    ノート:

    TO_BLOB(CLOB)はサポートされていません。
  • TO_CHAR(): CLOBからCHAR型に変換します。このファンクションを使用してキャラクタLOBをデータベース文字セットに変換すると、変換するLOB値がターゲットの型よりも大きい場合、エラーが戻されます。暗黙的な変換でも、LOBデータが適合しない場合はエラーが発生します。

  • TO_NCHAR(): NCLOBNCHAR型に変換します。このファンクションを使用して文字LOBを各国語文字セットに変換する際、変換するLOB値がターゲットのデータ型よりも大きいと、データベースからエラーが返されます。暗黙的な変換でも、LOBデータが適合しない場合はエラーが発生します。

  • CASTは、LOBデータ型のいずれも直接的にサポートしていません。CASTを使用してCLOB値を文字データ型に変換する場合、NCLOB値を各国語キャラクタ・データ型に変換する場合、またはBLOB値をRAWデータ型に変換する場合に、データベースが暗黙的にLOB値を文字データまたはRAWデータに変換し、結果の値を明示的にターゲットのデータ型にキャストします。結果値がターゲットの型より大きい場合、エラーが戻されます。