2012-03-16 19 views
1

レコードを挿入しようとするとエラーメッセージが表示されます。すべての値が存在し、データ型が一貫していることをダブルチェックしました。誰かが私に問題を見つけるのを助けてくれますか?値が不十分なエラーメッセージOracle

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','[email protected]','P.O. Box 891, 5837 Enim Avenue',to_date('16/06/2010','dd/mm/YYYY'),NULL,41695,NULL,1,1); 

答えて

8
INSERT INTO STAFF VALUES (null,'Jaime Stark',to_date('29/04/1951','dd/mm/YYYY'),'607 4432-1059','[email protected]','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','[email protected]','P.O. Box 891, 5837 Enim Avenue',to_date('16/06/2010','dd/mm/YYYY'),NULL,41695,NULL,1,1); 
+0

私は多分私のシーケンスに何か問題があり、ヌルを挿入することはできませんというエラーを取得しますか? emp_idに正しいプライマリキーを設定しないでください。 –

+0

どちらのオプションもうまくいきます。どの列にエラーがありますか? – turbanoff

+1

@JoseDavidGarciaLlanos、トリガーが何らかの理由で発砲していない可能性があります。私は上記のようにあなたの作成文を正確に使用しました。そして、両方のturbanoffのinsert文が私のために働いていました。したがって、トリガーを無効にしたり削除したりするなどのトラブルシューティングを行っていた可能性があります。可能であれば、テーブルとトリガーを落として再作成し、この回答からインサートを再試行してください。 –

関連する問題