long有2GB大小,相当于SQL Server中的text一样

解决方案 »

  1.   


    Long 可变字符  <=2GB字节
    Long 数据类型的限制:
    select中可以用long
    update中可以用select子句
    insert 中可以用values子句
    每个表只能允许一个long列
    long列不能列出完整性约束(null,not null除外)
    long列不能被索引,
    过程或存储函数不能接受long型函数
    存储函数不能返回long型值.long目前不能出现在以下情况中:
    select 中的where ,group by,order by,connect by,distinct
    不能对long列做substr,instr计算
    表达式或条件,
    子查询或集合中不能用long.
    create table ...as select..中不能用long
      

  2.   

    varchar2做字段可以存储4000字符.做变量可以存32767字符.如果超过,就是用long.如果再多,就clob/
      

  3.   

    varchar2用来描述变长的字符型数据长度<=4000字节
    long    用来存储最大长度为2GB的变长字符型数据
    clob    用来存储最大长度为4GB的字符型数据
      

  4.   

    楼上说的都不错,补充一点,varchar2可以存储<=4000个可变长字符不是字节
      

  5.   

    用blob或者clob
    long字段不建议,因为照Oracle的说法,说不定下一版本的oracle就不支持long类型了
      

  6.   

    那么到底用
    blob 还是 long 比较好呢?
    什么时候用哪一个更合适呢?
    我只需要把文本框中的字段写到里面就行了。
      

  7.   

    ”varchar2可以存储<=4000个可变长字符不是字节“??
    可我从来没成功的将3500个汉字插入到类型为VARCHAR2(4000)的字段中过!
    不知道能否举个例子?
      

  8.   

    不推荐用long,(不好做查找等操作),最好是用clob
    create table test(
      id int,
      memo clob,
      primary key(id)
    );insert into test values(1,'asdfs');select id,dbms_lob.substr(memo,1,1) from test ;