2016-02-26 57 views
0

我已經嘗試了應用在很多方面外鍵,而是插入一行到我的表,該表時,我收到了同樣的錯誤:外鍵插入錯誤的SQL開發

INSERT INTO MEDICINE 
VALUES (50, 'PREDNISONE', '8 BOTTLES', 'N', 
     TO_DATE('12-MAR-2019','DD-MON-YYYY'), 
     TO_DATE('09-JAN-2016','DD-MON-YYYY'), 2); 

我已經創建了我的表很多:

CREATE TABLE MEDICINE 
(
    M_ID NUMBER PRIMARY KEY, 
    M_NAME VARCHAR2(50), 
    QUANTITY NUMBER, 
    OTC VARCHAR2(1), 
    EXPR DATE, 
    LAST_AUDIT DATE, 
    PT_ID NUMBER, 

    CONSTRAINT fk_MED FOREIGN KEY (PT_ID) 
    REFERENCES PHARM_TECH(PT_ID) 
); 

我也試過:

CREATE TABLE MEDICINE 
(
    M_ID NUMBER PRIMARY KEY, 
    M_NAME VARCHAR2(50), 
    QUANTITY NUMBER, 
    OTC VARCHAR2(1), 
    EXPR DATE, 
    LAST_AUDIT DATE, 
    PT_ID NUMBER 
); 

ALTER TABLE MEDICINE 
ADD FOREIGN KEY (PT_ID) 
REFERENCES PHARM_TECH(PT_ID); 

我也嘗試:

CREATE TABLE MEDICINE 
(
    M_ID NUMBER PRIMARY KEY, 
    M_NAME VARCHAR2(50), 
    QUANTITY NUMBER, 
    OTC VARCHAR2(1), 
    EXPR DATE, 
    LAST_AUDIT DATE, 
    PT_ID NUMBER REFERENCES PHARM_TECH(PT_ID) 
); 

這些都運行正常,並創建表沒有問題,但是,插入行上面時,我不斷收到此錯誤:

Error report -
SQL Error: ORA-01722: invalid number
01722. 00000 - "invalid number"
*Cause: The specified number was invalid.
*Action: Specify a valid number.

是什麼造成的?

+0

該錯誤與外鍵無關。 '8 BOTTLES'根本不是一個數字(這是'quantity'列的數據類型) –

回答

1

您不能將值'8 BOTTLES'插入列QUANTITY中。數據類型是Number not varchar。嘗試8或嘗試更改列的數據類型數量爲varchar2