请帮助我修复在尝试将内容插入下表时收到的错误消息。举个例子可以帮助我更好地理解它。
CREATE TABLE EMP (
EMP_ID INTEGER NOT NULL
, FNAME VARCHAR(30) NOT NULL
, LNAME VARCHAR(30) NOT NULL
, ADDRESS VARCHAR(50) NOT NULL
, SALARY VARCHAR(50) NOT NULL
, DOB DATE NOT NULL
, SHIFTS VARCHAR2(20) NOT NULL
, SSN CHAR(11) NOT NULL
, PHONE CHAR(12) NOT NULL
, HIRING_DATE CHAR(12) NOT NULL
, EMAIL VARCHAR2(50) NOT NULL
);
插入:
INSERT INTO EMP
VALUES(1,'Erica', 'Brandon', '425 Main Street', 'Credit Card',
'1965-06-30', 'Evening', '610-24-1111',
'603-547-8296', '2010-01-16', 'ejohnson@fakemail.com');
错误报告-SQL错误:ORA-01722:无效号码01722。00000-"无效号码"*原因:指定的号码无效。*操作:指定有效号码。
Oracle中的日期格式取决于国际化设置(默认不好)。您可以使用date
关键字使用ISO标准格式指定日期:
INSERT INTO EMP
VALUES(1, 'Erica', 'Brandon', '425 Main Street', 'Credit Card',
DATE '1965-06-30', 'Evening', '610-24-1111',
'603-547-8296', '2010-01-16', 'ejohnson@fakemail.com');
笔记:
HiringDate
应该是日期类型,而不是字符类型插入
中列出EMP
使用TO_DATE
:
INSERT INTO EMP
VALUES(1,
'Erica',
'Brandon',
'425 Main Street',
'Credit Card',
TO_DATE('1965-06-30', 'yyyy-mm-dd'),
'Evening',
'610-24-1111',
'603-547-8296',
TO_DATE('2010-01-16', 'yyyy-mm-dd'),
'ejohnson@fakemail.com');
SqlFiddleDemo
一个很好的做法是使用如下的列名:
INSERT INTO EMP(EMP_ID,FNAME,LNAME...)
VALUES (...);
您应该将招聘_DATE
存储为日期
,而不是字符串。
对于某人来说,这是一个非常简单的方法,下面的插入内容给了我 ORA-01722:无效的数字 为什么?
我正在我的Oracle客户机中运行下面提到的查询,我得到了 ORA-01722:无效号码 错误。我知道这个问题是由于TAG_VALUE列的类型是“”,我正在将其转换为数字,然后在where子句中使用该字段。我尝试过使用“”功能,但这也没有帮助。如果我运行查询时忽略了最后一个 where 条件,代码为
我不明白为什么我会犯这个错误。 当我对交互式报表执行此查询时,它会引发 ORA-01722 错误。此查询不仅在 SQL 开发人员中正确运行,而且作为经典报表正确运行。当我将类型更改为交互式报表时,再次抛出相同的错误。 我该怎么办? 提前多谢。
这是我的桌子。 我运行此插入语句 我得到这个错误信息: 从命令中的第1行开始出错-插入计划(SCHEDULE_IDARRV_TIMEDEP_TIMEBUS_TRANSFERSBUS_IDTRAVEL_DIRECTIONWEEK_DAY)值(SEQ_SCHEDULE.NEXTVAL,'10','11','White Oak','2','North','4') 错误报告-SQL错误:ORA-01722
一个非常容易的人,下面的插入是给我
我正在创建一个对账报告,我主要是想知道每个发送批次的单据价值。 批处理 ID 位于其自己的列中,发送的数据位于一列中,并以逗号分隔,请参阅下面随机生成的示例: 每个批次至少有2行,最大可以是2000行。在此表中,我有两列:Batch ID和Data 我需要将所有文件金额相加,在这种情况下为100 200。 目前,我正在尝试通过此查询完成工作: 但是以错误ORA-01722结束:无效数字 提前感谢,