SQL ORA-01722:无效数字
使用Oracle Application Express时遇到问题。我目前正在大学学习数据库管理,并使用APEX。所有客户信息都是使用生成器创建的,因此此处没有个人信息 我遇到的问题是在尝试运行脚本以将信息插入walks表时引起的。我得到一个无效的数字错误SQL ORA-01722:无效数字,sql,database,Sql,Database,使用Oracle Application Express时遇到问题。我目前正在大学学习数据库管理,并使用APEX。所有客户信息都是使用生成器创建的,因此此处没有个人信息 我遇到的问题是在尝试运行脚本以将信息插入walks表时引起的。我得到一个无效的数字错误 INSERT INTO WALKS VALUES (TIMESTAMP '2018-3-12 20:42:43', TIMESTAMP '2018-3-12 21:42:43', '13-JUN-18', 'San Antonio', 'TX
INSERT INTO WALKS
VALUES (TIMESTAMP '2018-3-12 20:42:43', TIMESTAMP '2018-3-12 21:42:43', '13-JUN-18', 'San Antonio', 'TX', 1, 537028782);
INSERT INTO WALKS
VALUES (TIMESTAMP '2018-2-13 17:51:45', TIMESTAMP '2018-2-13 18:51:45', '10-OCT-18', 'San Antonio', 'TX', 2, 388191065);
我使用的创建表是
CREATE TABLE Walks
(StartTime TIMESTAMP NOT NULL,
EndTime TIMESTAMP,
WalkDate INTEGER NOT NULL,
City VARCHAR2(15) NOT NULL,
State VARCHAR2(2) NOT NULL,
CustomerID INTEGER NOT NULL,
WalkerID VARCHAR2(9) NOT NULL,
CONSTRAINT Walk_Cust_fk FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID),
CONSTRAINT Walk_Wlkr_fk FOREIGN KEY (WalkerID) REFERENCES Walkers(SocSecNum),
CONSTRAINT Walk_pk PRIMARY KEY (CustomerID, WalkerID));
CustomerID是一个不为NULL的整数,WalkerID是一个varchar2(9)。如果有帮助的话
只是不知道什么时候我运行这个,我得到这个错误。非常感谢您的帮助。您已将
WalkDate
声明为整数。我猜你的意思是日期:
CREATE TABLE Walks (
StartTime TIMESTAMP NOT NULL,
EndTime TIMESTAMP,
WalkDate INTEGER NOT NULL,
City VARCHAR2(15) NOT NULL,
State VARCHAR2(2) NOT NULL,
CustomerID INTEGER NOT NULL,
WalkerID VARCHAR2(9) NOT NULL,
CONSTRAINT Walk_Cust_fk FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID),
CONSTRAINT Walk_Wlkr_fk FOREIGN KEY (WalkerID) REFERENCES Walkers(SocSecNum),
CONSTRAINT Walk_pk PRIMARY KEY (CustomerID, WalkerID)
);
我建议将插入的写为:
INSERT INTO WALKS (StartTime, EndTime, WalkDate, City, State, CustomerId, WalkerId)
VALUES (TIMESTAMP '2018-3-12 20:42:43', TIMESTAMP '2018-3-12 21:42:43', DATE '2018-06-13', 'San Antonio', 'TX', 1, 537028782);
使用DATE
关键字意味着您不必依赖于系统日期格式设置。在使用INSERT
时,列出所有列只是一种最佳做法。谢谢,我将尝试一下。