2013-07-18 10 views
17

まず、これはthis質問の複製ではありません。それがあれば、申し訳ありませんが、私はそれを読むことで私の問題を解決することができませんでした。私は、このSELECT文を実行しようとするとORA-00932:選択フィールドと共用フィールドおよびCLOBフィールドの使用

ORA-00932: inconsistent datatypes: expected - got CLOB 

SELECT TXT.t_txt 
    FROM CITADM.tb_avu_txt_grc GR 
INNER JOIN CITADM.tb_avu_txt TXT 
    ON (GR.e_txt = TXT.e_txt and GR.u_txt = TXT.u_txt) 
WHERE TXT.u_lin_ord = 1 
UNION 
SELECT TXT.t_txt 
    FROM CITADM.tb_avu_txt_grc_cvd GRC 
INNER JOIN CITADM.tb_avu_txt TXT 
    ON (GRC.e_txt = TXT.e_txt and GRC.u_txt = TXT.u_txt) 
WHERE TXT.u_lin_ord = 2 

選択したフィールド(t_txt)は、CLOBデータ型である

が、私はこのエラーを取得しています。ご覧のとおり、同じ表の同じ列です。この声明はより大きなものに属し、私はこの問題を抱えている部分を切り離しました。

ありがとうございました。

+1

「UNION」ではなく「UNION ALL」を試してください。 –

答えて

29

私は問題がUNION ALLの代わりにUNIONの使用であると信じています。 UNIONオペレーターは、2つのセットを組み合わせ、重複を排除します。 CLOB型は比較できないため、重複排除は不可能です。

UNION ALLを使用すると重複排除を試みません(おそらく重複はありません)ので、うまくいくはずです。

+0

それは働いた!ありがとうございます( – gabsferreira

+0

古い質問と回答ですが、今日はこれが私のために働いてくれました。ありがとうございます。 –

0

にはの重複があったため、UNION ALLを使用できませんでした。このソリューションは完璧に動作します、ありがとう!

BTW: これは、UNION ALLとUNIONが意味的に異なるため、唯一の正解です。重複がまったくない場合、UNIONを使用すると不要なソートオーバーヘッドが発生します。

+0

これはコメントです。 –

関連する問題