2017-01-08 29 views
0

希望有日期格式爲DD/MM/YYYYSQL甲骨文日期問題:ORA-01722:無效數字

我用:

ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY'; 

現在,當我寫了一行:

INSERT INTO staff Values ('ST01', 'Mrs', 'Katie', 'Elswood', '06/10/1990'); 

我得到的錯誤:

ERROR at line 1: ORA-01722: invalid number

任何想法什麼是錯的?謝謝。

或者我得到的錯誤信息不是有效月份?

STAFF_ID         NOT NULL VARCHAR2(6) 
TITLE            VARCHAR2(20) 
FIRST_NAME           VARCHAR2(20) 
SURNAME           VARCHAR2(20) 
DOB            DATE 
ADDRESS           VARCHAR2(50) 
HOME_NO           VARCHAR2(20) 
MOBILE            VARCHAR2(20) 
EMAIL            VARCHAR2(30) 
NI             VARCHAR2(9) 
SALARY            NUMBER(13,4) 
EMPLOMENT_DATE          DATE 
BRANCH_ID           VARCHAR2(3) 
POSTCODE           VARCHAR2(8) 
POSITION           VARCHAR2(30) 
TOWN            VARCHAR2(30) 
+1

也許其中一個非日期列是一個數字。或者,你可能有一個產生錯誤的觸發器。 –

+1

ORA-01722錯誤與日期列無關(儘管最好對格式模型使用'to_date()'或ANSI日期文字)。提供列名作爲語句的一部分可避免未對齊的數據 - 例如'插入員工(staff_id,標題,名字,姓氏,僱用)值...'。儘管你的桌子有很多其他的列,所以你顯示的插入會首先抱怨。還要檢查桌子上是否有觸發器。 –

+0

是的。它是一個身份證號碼。對不起,這是我的第一個任務,我從來沒有使用過SQL。 INSERT INTO staff(id,title,firstname,lastname,hiredate)值('ST01','Mrs','Katie','Elswood','06/10/1990');你是這個意思嗎? –

回答

2

這不是日期問題。在插入時,如果你沒有插入所有的值,那麼oracle會拋出一個錯誤信息。因此,請明確提及您要插入值的列名。

Insert into staff(staff_id,title,first_name,surname,dob) values ('ST01','Mrs','Katie','Elswood','06/10/1990');