本人乃第一次接触ORACLE,望各位大侠指点一二;
我自己也写了种方法 但不适用:
insert into CheShi2(C2_ID,C2_Td,C2_Tr) values(ceshi2.nextval,'dsdas','dsadas');
Select ceshi2.currval from dual;同时也不考虑用存储过程和 触发器写 ,如果能用一条sql语句写出来就最好了

解决方案 »

  1.   

    -- 序列号的产生 
    create sequence row_id 
    minvalue 1 
    maxvalue 9999999999999999999999 
    start with 1 
    increment by 1 insert into test values(row_id.nextval,....)  
    当前序列号row_id.currentval
    下一个序列号row_id.nextval
      

  2.   

    insert into CheShi2(C2_ID,C2_Td,C2_Tr) values(ceshi2.nextval,'dsdas','dsadas');
    Select ceshi2.currval from dual;在客户端用一个connection,发送两次查询命令就不会抱错了,不会出现并发问题的。使用 CURRVAL
    任何对 CURRVAL 的引用返回指定序列的当前值,该值是最后一次对 NEXTVAL 的引用所返回的值。用 NEXTVAL 生成一个新值以后,可以继续使用 CURRVAL 访问这个值,不管另一个用户是否增加这个序列。 
      

  3.   

     在客户端用一个connection,发送两次查询命令就不会抱错了,不会出现并发问题的。  我用这种方法已经测试成功了 但不符合要求 谢谢你的回答
      

  4.   

    在客户端只用一个 connection 就能获取的就行