【发布时间】:2016-02-26 04:28:29
【问题描述】:
我尝试过以多种方式应用外键,但在向我的表中插入一行时遇到了同样的错误:
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 - “无效号码”
*原因:指定的号码无效。
*行动:指定一个有效的数字。
这是什么原因造成的?
【问题讨论】:
-
该错误与外键无关。
8 BOTTLES根本不是数字(这是quantity列的数据类型)
标签: sql oracle foreign-keys sql-insert