代碼如下:
select title1,body1,date1 from table1
where id='1'
union select title2,body2,date2 from table2
where id='1'
body1,body2為long型
報錯:不可使用long型資料類型

解决方案 »

  1.   

    我估计你以为long类型是长整型吧,实际上long是可变长的字符串数据,最长2G。是clob、blob之前的存储大数据的类型,不是数字类型。
    再看这个错误:
    ORA-00997 illegal use of LONG datatypeCause: A value of datatype LONG was used in a function or in a DISTINCT, WHERE, CONNECT BY, GROUP BY, or ORDER BY clause. A LONG value can only be used in a SELECT clause. 其实还包括你对long类型进行比较(相等和不等判断),union(其中也包括比较)的时候都会报这个错。就是oracle不支持对这种类型的比较操作。(你仔细看看就会发现所有这些都是比较。)如果你一定要把两个表合并的话,那么使用union all就可以了。union all不涉及比较。
      

  2.   

    明白,之後我就發現了,用union all 就可以了,不過當時不明白為什麼會這樣,感謝fenixshadow的解釋