[英]oracle 12g invalid number error
create table WeeklySaleReport
( ReportID varchar(20) primary key
, StartDate date
, EndDate date
, SaleAmount number (8,2)
, ComRate number (8,2)
, ComAmount number (8,2)
, EmployeeID int
, EName varchar(70)
, BrandID varchar(20)
, BName varchar(70)
, BSaleAmount number(8,2)
, TypeID varchar(20)
, TName varchar(20)
, TSaleAmount number(8,2)
, ESaleAmount number(8,2)
, EBonus number(8,2)
, DepartmentID references Department(DepartmentID) );
該表制作成功
但是當嘗試插入這些字段時,它給我錯誤“無效編號”:
insert into WeeklySaleReport
values
( 'R1', TO_DATE ('2018/06/16','yyyy/mm/dd')
, TO_DATE ('2018/07/11','yyyy/mm/dd')
, '9020.00', '2324.21', '20.00', 'E1'
, 'Bassi', 'B1', 'Brand One', '123.00'
, 'Type1', 'T One', '500.00', '123.00'
, '555.00', 'D1' );
您已經在表中定義了EmployeeID int
,然后嘗試將值'E1'
插入該列。
我強烈建議您將插入內容寫成這樣:
insert into WeeklySaleReport (ReportID, StartDate, EndDate, SaleAmount, ComRate, ComAmount,
EmployeeID, EName, BrandID, BName, BSaleAmount,
TypeID, TName, TSaleAmount, ESaleAmount, EBonus)
values 'R1', -- ReportID
DATE '2018-06-16', -- StartDate
DATE '2018-07-11', -- EndDate
9020.00, -- SaleAmount
2324.21, -- ComRate
20.00, -- ComAmount
'E1' -- EmployeeId
---------^ ERROR
'Bassi', -- EName
'B1', -- BrandId
'Brand One', -- BName
123.00, -- BSaleAmount
'Type1', -- TypeId
'T One', -- TName
500.00, -- TSaleAmount
123.00, -- ESaleAmount
555.00, -- Bonus
'D1' -- DepartmentId
);
筆記:
EmployeeId
顯然是一個錯誤。 VARCHAR2()
而不是VARCHAR()
。 DATE
關鍵字。 它是ANSI標准,更易於閱讀。 我剛剛學到了一些東西。 即使DepartmentId
聲明沒有類型,它在Oracle中也是有效的。 這是一個SQL Fiddle。 大多數數據庫在表中都需要類型定義。 但是,我仍然不知道該值是否有效,因為問題中類型不清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.