1.字符串太长,应该用那个字段?varchar最大是4000.有人说是clob,如果用的话,字符串怎么往里存?
2.id自动增长怎么实现?一定要用序列吗?一个自动增长的id对应一个序列,对吗?暂时就这些。以前一直用sql server的。
小弟谢谢各位了!

解决方案 »

  1.   

    1.VARCHAR2怎么存,CLOB就怎么存
    2.id自动增长可以通过SEQUENCE和触发器实现,也可以在程序里实现
      

  2.   

    --创建表
    create table lob_example1(id number(6) primary key,
    name varchar2(10),resume clob);--初始化
    insert into lob_example1 values(1,'马鸣',EMPTY_CLOB());
    insert into lob_example1 values(2,'马丽',EMPTY_CLOB());--更新 
    declare
           lob_loc clob;
           text    varchar2(200);
           amount int ;
           offset int;
    begin
         select resume into lob_loc from lob_example1 where id = &id for update;
         offset := dbms_lob.getlength(lob_loc) + 1;
         text := '&reesume';
         amount := length(text);
         dbms_lob.write(lob_loc,amount,offset,text);
         commit;
    end;      --读取
    declare
           lob_loc clob;
           buffer varchar2(200);
           amount int;
           offset int;
    begin
         select resume into lob_loc from lob_example1 where id = &id;
         offset := 6;
         amount := dbms_lob.getlength(lob_loc);
         dbms_lob.read(lob_loc,amount,offset,buffer);
         dbms_output.put_line(buffer);
    end;       
      

  3.   

    1.varchar2长度是4000,长度大于4000一般是用更大的长度类型如clob 等
    2.可以用序列也可用触发器或在其它客户端程序处理,一般是使用SEQUENCE比较方便,
    一个自动增长的id是对应一个序列
      

  4.   


    建议去看看Oracle基础方面的书。
      

  5.   

    1.用clob字段与用varchar2有些不同,你可以在网上查一下,2楼回答的挺细的
    2.一个序列可以对应多个ID,这个不一定要求一一对应.