SQL ORA-01722:无效的数字

时间:2018-11-17 17:59:41

标签: 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', 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是整数NOT NULL,而WalkerID是varchar2(9)。如果有帮助的话。

当我运行此命令时,我无法弄清楚出现此错误。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您已将WalkDate声明为整数。我假设您是说date

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编写为:

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时的最佳实践。