SQL ORA-01722: 无效号码

Posted

技术标签:

【中文标题】SQL ORA-01722: 无效号码【英文标题】:SQL ORA-01722: invalid number 【发布时间】:2018-11-17 17:59:40 【问题描述】:

在使用 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 是一个非空整数,WalkerID 是一个 varchar2(9)。如果这有帮助的话。

只是不知道什么时候运行这个我得到这个错误。任何帮助表示赞赏。

【问题讨论】:

【参考方案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 时的最佳实践。

【讨论】:

谢谢,我会试试看的。

以上是关于SQL ORA-01722: 无效号码的主要内容,如果未能解决你的问题,请参考以下文章

SELECT FROM AS 导致 ORA-01722: 无效号码

如何修复 oracle ORA-01722 无效号码错误

ORA-01722: 使用 to_number 时号码无效

ORA-01722:无效号码 ORA-06512:在“BWSTAGE.LOAD_CONTACT_PROCEDURE”,第 8 行 ORA-06512:在第 2 行

Oracle报错ORA-01722: 无效数字排查解决方案

Oracle sql 错误 ora-01722 无效数字 ora-02063 前行来自