【问题标题】:Not enough values error message Oracle没有足够的值错误消息 Oracle
【发布时间】:2012-03-16 08:24:31
【问题描述】:

我在尝试插入记录时收到一条错误消息,我已经仔细检查了所有值是否存在并且数据类型是否一致。谁能帮我找出问题。

CREATE SEQUENCE EMP_ID_SEQ
START WITH 300
INCREMENT BY 1;

CREATE TABLE STAFF(
EMP_ID NUMBER NOT NULL,
EMP_NAME VARCHAR2(20),
EMP_DOB DATE,
EMP_TEL VARCHAR2(20),
EMP_EMAIL VARCHAR2(50),
EMP_ADDR VARCHAR2(100),
EMP_HIREDATE DATE,
EMP_ENDDATE DATE,
EMP_SALARY NUMBER(7,2),
EMP_SUPERVISOR NUMBER,
 JOB_CODE NUMBER,
 BRA_CODE NUMBER);

 CREATE TRIGGER EMP_ID_TRG
BEFORE INSERT ON STAFF
FOR EACH ROW
BEGIN
SELECT EMP_ID_SEQ.NEXTVAL
INTO :NEW.EMP_ID
FROM DUAL;
END;
/

INSERT INTO STAFF VALUES ('Jaime Stark',to_date('29/04/1951','dd/mm/YYYY'),'607 4432-1059','Donec.fringilla.Donec@necurnaet.ca','P.O. Box 891, 5837 Enim Avenue',to_date('16/06/2010','dd/mm/YYYY'),NULL,41695,NULL,1,1);

【问题讨论】:

    标签: sql oracle oracle11g database-schema


    【解决方案1】:
    INSERT INTO STAFF VALUES (null,'Jaime Stark',to_date('29/04/1951','dd/mm/YYYY'),'607 4432-1059','Donec.fringilla.Donec@necurnaet.ca','P.O. Box 891, 5837 Enim Avenue',to_date('16/06/2010','dd/mm/YYYY'),NULL,41695,NULL,1,1);
    

    INSERT INTO STAFF (EMP_NAME,EMP_DOB,EMP_TEL,EMP_EMAIL,EMP_ADDR,EMP_HIREDATE,EMP_ENDDATE,EMP_SALARY,EMP_SUPERVISOR,JOB_CODE,BRA_CODE)
    VALUES ('Jaime Stark',to_date('29/04/1951','dd/mm/YYYY'),'607 4432-1059','Donec.fringilla.Donec@necurnaet.ca','P.O. Box 891, 5837 Enim Avenue',to_date('16/06/2010','dd/mm/YYYY'),NULL,41695,NULL,1,1);
    

    【讨论】:

    • 我收到错误消息说不能插入空值,也许我的序列有问题?或触发没有为emp_id设置正确的主键
    • @JoseDavidGarciaLlanos,听起来您的触发器可能由于某种原因没有触发。我完全如上所示使用了您的创建语句,并且 turbanoff 的两个插入语句都对我有用。因此,也许您在故障排除时做了一些事情,例如禁用或删除触发器。如果可能,删除并重新创建表并触发,然后重新尝试从这个答案中插入。
    猜你喜欢
    • 2019-07-11
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多