• ベストアンサー

ORACLE10g VIEW UNION

VIEW同士をUNIONすることは可能でしょうか? というより、実行してみたのですが、データ型が一致していない列があり出来ませんでした。 View作成時にのデータ型を設定する方法などはあるのでしょうか? 識者の方がいればご教示いただきたいです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

VIEW同士のUNIONは可能です データ型が一致していない列があるとUNION出来ない、これは書かれている通りです そのようなエラーが発生していたのであれば、そのような理由であると思われます View作成時にデータ型を設定する方法ということですが、 これは普通に明示的に型をキャストすることで可能です 例(NUMBER→VARCHAR2) Create Table TBL_NUM( NUM NUMBER ); Create View VIEW_NUM1 As Select NUM From TBL_NUM; Create View VIEW_NUM2 As Select To_Char( NUM ) As "NUM" From TBL_NUM; Desc TBL_NUM Desc VIEW_NUM1 Desc VIEW_NUM2 VIEW_NUM2.NUM は VARCHAR2型辺りになっているはずです

anman0201
質問者

お礼

ご回答ありがとうございました。 こちらの方法でいけました。 ありがとうございました。

その他の回答 (1)

回答No.1

>VIEW同士をUNIONすることは可能でしょうか? 単純な表であれば常識的に考えてできると思います。特殊なVIEWの場合は無理かも知れません。 >View作成時にのデータ型を設定する方法などはあるのでしょうか? データ型を設定する方法は知りませんが、データ型が一致しないのだからキャストをすればいいのだから、CAST関数を使用してみてはどうでしょうか? http://www.shift-the-oracle.com/sql/functions/cast.html うまくいくかは保証できませんので、実際にご確認ください。 以上、乱文失礼しました。

anman0201
質問者

お礼

ご回答ありがとうございます。 こちらの方法も参考にさせていただきました!

関連するQ&A