程序中直接用:insert into table1 values(SEQ_DX.NEXTVAL,列1值,列2值)
不会有问题的,我从来都是这样,看看是不是其它原因吧!

解决方案 »

  1.   

    用动态SQL语句,可以实现,不过好象比你用
    select seq_dx.nextval into aa from dual,这样
    操作麻烦。
      

  2.   

    不应该是程序的问题,因为我将调试过程中的SQL语句放在worksheet中执行就没有问题,在worksheet中执行和使用ADO的连接去执行有这么大的区别吗?
      

  3.   

    可以的,具体前端用什么语言?
    我用VB,ASP都可以的
      

  4.   

    使用的是VB。
    这是执行后的 Err.number 和 Err.Description
    -2147217900 在此上下文中不允许使用 'nextval'。此处只允许使用常量、表达式或变量。不允许使用列名。
      

  5.   

    用 excute immediatetly lssqlstr 试试
      

  6.   

    方案一:
    sqlstr="insert into table1 values((select seq_dx.nextval from dual),列1值,列2值)"
    gdataconn.execute sqlstr
    方案二:
    写一个存储过程,其中有这样的语句:
    insert into table1 values(SEQ_DX.NEXTVAL,列1值,列2值)
    然后用VB调用存储过程。
    我记得好像存储过程中可以直接访问序列的,如果记错了别怪我。
      

  7.   

    chooser(chooser)方案一应该可行,这样也是在一句SQL中
    在使用的SEQ_DX.NEXTVAL用户和表是同一个吧,要是同一个用户模式下
      

  8.   

    CREATE SEQUENCE seq_dft_dyjzls_id INCREMENT BY 1 START WITH 1;
    2.获取序号值 
    获取当前序号:SELECT seq_dft_dyjzls_id.CURRVAL FROM DUAL;
    获取下一个序号:SELECT seq_dft_dyjzls_id.NEXTVAL FROM DUAL;