系统环境: 
1、操作系统:Windows 2000
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE使用说明: 
1、LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB。2、对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的。3、LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。4、很多工具,包括SQL*Plus,处理LONG 数据类型都是很困难的。5、LONG 数据类型的使用中,要受限于磁盘的大小。能够操作 LONG 的 SQL 语句: 
1、Select语句2、Update语句中的SET语句3、Insert语句中的VALUES语句限制: 1、一个表中只能包含一个 LONG 类型的列。2、不能索引LONG类型列。3、不能将含有LONG类型列的表作聚簇。4、不能在SQL*Plus中将LONG类型列的数值插入到另一个表格中,如insert into ...select。5、不能在SQL*Plus中通过查询其他表的方式来创建LONG类型列,如create table as select。6、不能对LONG类型列加约束条件(NULL、NOT NULL、DEFAULT除外),如:关键字列(PRIMARY KEY)不能是 LONG 数据类型。7、LONG类型列不能用在Select的以下子句中:where、group by、order by,以及带有distinct的select语句中。8、LONG类型列不能用于分布查询。9、PL/SQL过程块的变量不能定义为LONG类型。10、LONG类型列不能被SQL函数所改变,如:substr、instr。SQL*Plus 中操作 LONG类型列: 
1、set long n2、col 列名 format Ann代表n位字符(n为大于零的整数),An表示将此列的数据显示宽度限制为不超过n位。

解决方案 »

  1.   

    选择第1行到第10行的记录
    select * from table where rownum<=10
      

  2.   

    long的話是不行的。建議使用blob、clob,至少也得是long raw
      

  3.   

    LONG columns cannot appear in certain parts of SQL statements: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 built-in functions, 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 
    ALTER TABLE ... MOVE statements 
    SELECT lists in subqueries in INSERT statements
      

  4.   

    太感谢了!同志们,灌水呀!CLOB, BLOB有没有和long类型相同的限制呀?