LONG columns cannot appear in certain parts of SQL statements:
 WHERE clauses, GROUP BY clauses, ORDER BY clauses, or CONNECT BY clauses or
  with the DISTINCT operator in SELECT statements
 The UNIQUE operator of a SELECT statement
 The column list of a CREATE CLUSTER statement
 The CLUSTER clause of a CREATE MATERIALIZED VIEW statement
 SQL functions (such as SUBSTR or INSTR)
 Expressions or conditions
 SELECT lists of queries containing GROUP BY clauses
 SELECT lists of subqueries or queries combined by the UNION, INTERSECT, or
  MINUS set operators
** SELECT lists of CREATE TABLE ... AS SELECT statements
** SELECT lists in subqueries in INSERT statements

解决方案 »

  1.   

    楼上说的极是。
    Long 数据类型很脆弱的。
      

  2.   

    补充:最好使用blob不要用long
      

  3.   

    long 无 可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
    long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
      

  4.   

    对于LONG不作多解释,确实oracle已对它支持不够,以后新版本,oracle会放弃使用,取而代之使用clob,blob
      

  5.   

    哦!经过你们这么一解说,我也就明白了其中的原因。但问题是我们公司有一个表,存有很多数据,而里面却有long类型的字段。我不用它就意味着我要放弃那些数据,有没有什么安全的办法将这些数据
     
    转移到其它表中呢?