如何解決這個問題?
INSERT INTO logiciel VALUES ('log1','Oracle 6',13-05-1995,'6.2','UNIX','3000');
INSERT INTO logiciel VALUES ('log1','Oracle 6',13-05-1995,'6.2','UNIX','3000')
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected DATE got NUMBER
這里的錯誤是表格 表格
create table logiciel (
nLog varchar2 (5) primary key,
nomLog varchar (20) not null,
dateAchat date,
version varchar2 (7),
typeLog varchar2 (9),
prix number (6,2)
);
uj5u.com熱心網友回復:
使用TO_DATE具有適當格式掩碼的日期文字或函式。千萬不能插入到字串date資料型別的列,希望甲骨文會猜測你使用的格式。
SQL> -- date literal is always DATE 'yyyy-mm-dd'
SQL> INSERT INTO logiciel (nlog, nomlog, dateachat, version, typelog, prix)
2 VALUES ('log1', 'Oracle 6', date '1995-05-13', '6.2', 'UNIX', '3000');
1 row created.
SQL> -- TO_DATE lets you choose format, but then the format mask must follow it
SQL> INSERT INTO logiciel (nlog, nomlog, dateachat, version, typelog, prix)
2 VALUES ('log2', 'Oracle 6', to_date('13-05-1995', 'dd-mm-yyyy'), '6.2', 'UNIX', '3000');
1 row created.
SQL>
uj5u.com熱心網友回復:
您必須在日期值周圍使用引號,因為日期被視為字串 -
INSERT INTO logiciel VALUES ('log1','Oracle 6','13-05-1995','6.2','UNIX','3000');
但只使用字串會告訴資料庫將其存盤為字串而不是日期。它們之間的區別在于,您不能對字串進行任何日期操作。所以你現在有 2 個選擇。
- 使用具有日期格式的 To_Date 函式 -
INSERT INTO logiciel VALUES ('log1','Oracle 6',TO_DATE('13-05-1995', 'DD-MM-YYYY'),'6.2','UNIX','3000');
- 使用 ANSI 標準支持的 DATE 關鍵字,但使用該關鍵字,您必須使用日期格式為 'YYYY-MM-DD'-
INSERT INTO logiciel VALUES ('log1','Oracle 6',DATE '1995-05-13','6.2','UNIX','3000');
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/399468.html
上一篇:sql查詢有困難
下一篇:SQLServer合并重復條目
