在oracle中首先创建表a
create table a
(
    num number,
    times varchar2(10)   --需要注意的地方,varchae2类型
)
/
然后插入数据
insert into a values(1,"1")
/
insert into a values(2,"2")
/
insert into a values(3,"3")
/
insert into a values(4,"4")
/
insert into a values(5,"5")
/
然后再创建表b
create table b
(
   num number,
   times long  --需要注意的地方,long类型
)
/
同样插入数据
insert into a values(1,1)
/
insert into a values(2,2)
/
insert into a values(3,3)
/
insert into a values(4,4)
/
insert into a values(5,5)
/
最后 分别运行select * from a where rownum<11
minus
select * from a where rownum<1运行结果
......        
(略)       --正常select * from b where rownum<11
minus
select * from b where rownum<1报错:
 ORA-00997:   非法使用   LONG   数据类型....
为什么 使用long类型在这里会报错!!!
哪位大侠 帮帮忙
解释一下!!!!!!!!!!!!!

解决方案 »

  1.   

    long 不能直接MINUS
    LONG/LONG RAW 类型1.每个表中只能有一个LONG 或LONG RAW2.定义用户定义的类型时,不能有LONG/LONG RAW 类型的属性;3.不能在WHERE 子句中引用LONG 类型;4.除了NOT NULL 之外,完整性约束中不能引用LONG 类型;5. LONG 类型不支持分布式事务;6.LONG 类型不能使用基本或高级复制技术来复制;7.LONG 列不能在GROUP BY、ORDER BY 或CONNECT BY 子句中引用,也不能在使用了DISTINCT、UNIQUE、INTERSECT、MINUS或UNION 的查询中使用;8.PL/SQL 函数/过程不能接受LONG 类型的输入;9.SQL 内置函数不能应用于LONG 列(如SUBSTR);10. CREATE TABLE AS SELECT 语句中不能使用;11. 在包含LONG 类型的表上不能使用ALTER TABLE MOVE
      

  2.   

    long不是你想象中的长整型!
    long是raw类型,存大数据的,现在都用lob类型代替。
      

  3.   

    long数据类型不能minus做集合运算!