如题,在执行下列操作时
insert into employee(编号,姓名,部门编号,性别,出生日期,工作日前,岗位号) values(47,'李威',1,'男',to_date('10/02/1991','dd/mm/yy'),to_date('01/01/2011','dd/mm/yy'),(select seq_workno.nextval from dual)); 提示错误,请问该如何解决呢?先在此谢过了

解决方案 »

  1.   

    scott@SZTYORA> create sequence emp_seq start with 8000;序列已创建。scott@SZTYORA> insert into emp values(emp_seq.nextval, 'luoyoumou','MANAGER',7782,SYSDATE,5000,1000,20);已创建 1 行。scott@SZTYORA> SELECT * from emp;     EMPNO ENAME                JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ----------
           111 SMITH                CLERK                    7902 1980-12-17 00:00:00        800            20
          7499 ALLEN                SALESMAN                 7698 1981-02-20 00:00:00       1600        300         30
          7521 WARD                 SALESMAN                 7698 1981-02-22 00:00:00       1250        500         30
          7566 JONES                MANAGER                  7839 1981-04-02 00:00:00       2975            20
          7654 MARTIN               SALESMAN                 7698 1981-09-28 00:00:00       1250       1400         30
          7698 BLAKE                MANAGER                  7839 1981-05-01 00:00:00       2850            30
          7782 CLARK                MANAGER                  7839 1981-06-09 00:00:00       2450            10
          7788 SCOTT                ANALYST                  7566 0087-07-13 00:00:00       3000            20
          7839 KING                 PRESIDENT                     1981-11-17 00:00:00       5000            10
          7844 TURNER               SALESMAN                 7698 1981-09-08 00:00:00       1500          0         30
          7876 ADAMS                CLERK                    7788 0087-07-13 00:00:00       1100            20
          7900 JAMES                CLERK                    7698 1981-12-03 00:00:00        950            30
          7902 FORD                 ANALYST                  7566 1981-12-03 00:00:00       3000            20
          7934 MILLER               CLERK                    7782 1982-01-23 00:00:00       5201            10
          8000 luoyoumou            MANAGER                  7782 2011-04-02 16:32:43       5000       1000         20已选择15行。
      

  2.   


    insert into employee(编号,姓名,部门编号,性别,出生日期,工作日前,岗位号) 
    values(47,'李威',1,'男',to_date('10/02/1991','dd/mm/yy'),to_date('01/01 /2011','dd/mm/yy'),seq_workno.nextval);  
      

  3.   

    -- 直接引用,
    -- insert ... values() 中是不允许有查询语句的!
      

  4.   

    insert into employee(编号,姓名,部门编号,性别,出生日期,工作日前,岗位号) values(47,'李威',1,'男',to_date('10/02/1991','dd/mm/yy'),to_date('01/01/2011','dd/mm/yy'),seq_workno.nextval);
      

  5.   

    insert into employee(编号,姓名,部门编号,性别,出生日期,工作日前,岗位号) values(47,'李威',1,'男',to_date('10/02/1991','dd/mm/yy'),to_date('01/01/2011','dd/mm/yy'),seq_workno.nextval);  
      

  6.   


    用触发器做吧:create trigger tri_employee 
    before insert on employee 
    for each row 
    begin 
          select seq_workno.nextval into :new.岗位号 from dual; 
    end;insert into employee(编号,姓名,部门编号,性别,出生日期,工作日前) 
    values(47,'李威',1,'男',to_date('10/02/1991','dd/mm/yy'),to_date('01/01/2011','dd/mm/yy'));