簡體   English   中英

ORA-01858:找到一個非數字字符,其中數字是預期的? 即使數值是數字?

[英]ORA-01858: a non-numeric character was found where a numeric was expected? Even when the values are numbers?

這是表格

    CREATE TABLE Employee
    (EmpID number(5) primary key,
    SIN Number(9) Not null,
    LastName Varchar2(25) Not null,
    FirstName Varchar2(25),
    Street Varchar2(30),
    City Varchar2(25),
    Province Char(2),
    PostalCode Varchar2(7),
    JobCode Number(4) Not null,
    Foreign Key(JobCode) REFERENCES Job,
    IncomeTax Char(1),
    BirthDate Date,
    HireDate Date,
    JobCodeDate Date)
    TABLESPACE users;

這是我試圖插入的行,只有三個數值,所有這些都是數字,據我所見。

INSERT INTO Employee VALUES(97319,516303417,'Novak','Gerry','6803 Park Ave.','Moose Jaw','SK','S6H 1X7',3000,'N','24-Aug-86','07-Jul-03','07-Jul-03');

ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected

我相信問題是日期列嘗試使用此語法to_date('07-Jul-03','DD-MON-YY')

INSERT INTO Employee 
VALUES(97319,516303417,'Novak','Gerry','6803 Park Ave.','Moose Jaw','SK','S6H 1X7',3000,'N',to_date('24-Aug-86', 'DD-MON-YY'),to_date('07-Jul-03','DD-MON-YY'),to_date('07-Jul-03','DD-MON-YY'));

SQL-Fiddle: http ://sqlfiddle.com/#!4/0e9df/2

alter SESSION set NLS_DATE_FORMAT = 'DD-Mon-YY';

我只需輸入此內容,以便sql將正確執行插入查詢中的日期格式

INSERT語句中列出的字段順序與Oracle期望它們的順序之間可能存在差異。 我建議再次嘗試使用INSERT的完整語法(即在執行INSERT時指定字段名稱)。 這樣,絕對清楚地表明了場相關的價值。

所以像這樣:

INSERT 
INTO Employee (EmpID, SIN, LastName, FirstName, Street, City, Province, PostalCode, JobCode, IncomeTax, BirthDate, HireDate, JobCodeDate)
VALUES(97319,516303417,'Novak','Gerry','6803 Park Ave.','Moose Jaw','SK','S6H 1X7',3000,'N','1986-08-24','2003-07-07','2003-07-07');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM