我尝试过以多种方式应用外键,但在向表中插入一行时遇到同样的错误:
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)
);
这些都运行良好并创建表没有问题,但是,插入上面的行时我一直收到此错误:
错误报告 -
SQL错误:ORA-01722:无效的数字
01722. 00000 - "无效的号码"
*原因:指定的号码无效 *操作:指定有效数字。
造成这种情况的原因是什么?
答案 0 :(得分:1)
您无法将值'8 BOTTLES'插入到QUANTITY列中。数据类型为Number not varchar。尝试8或尝试将列数量的数据类型更改为varchar2