ORA-12704の解決について:Unionでの文字セットの不一致



About Resolution Ora 12704



Union all connectionを使用する場合、Aセットの列のタイプがnvarchar2またはnvarcharであり、Bセットにそのような列がない場合は、レポートの文字セットが一致しない代わりに「」を使用してください。 2つの解決策があります。以下の例を参照してください。

Select 'China', 'China', cast('China' as nvarchar2(10)) T from dual union all Select 'United States', 'USA', '' from dual

上記のように、Tのタイプはnvarchar2で、長さは10です。直接クエリを実行すると文字セットが一致しないため、対処方法は2つの方法で解決できます。



1.to_char()

Select 'China', 'China', to_char(cast('China' as nvarchar2(10))) T from dual union all Select 'United States', 'USA', '' from dual

2. N ''、N ''を使用して、 ‘をUnicodeエンコーディングに変換します



Select 'China', 'China', cast('China' as nvarchar2(10)) T from dual union all Select 'United States', 'USA', N'' from dual

これにより、文字セットの不一致の問題が解決されます。

見積もり: http://blog.csdn.net/lqh4188/article/details/7498354