我得到了流动的错误:
Error starting at line 1 in command:
INSERT INTO driver (registration, make, model, gvw, year, body) VALUES('4585 AW','ALBION','RIEVER',20321,1963, ' ');
Error at Command Line:1 Column:53
Error report:
SQL Error: ORA-00904: "BODY": invalid identifier
00904. 00000 - "%s: invalid identifier"
当我执行以下操作时
INSERT INTO driver
(registration, make, model, gvw, year)
VALUES
('4585 AW','ALBION','RIEVER',20321,1963, ' ');
所以我暂时删除了正文数据,然后给出了错误
Error starting at line 1 in command:
INSERT INTO driver (registration, make, model, gvw, year) VALUES('4585 AW','ALBION','RIEVER',20321,1963)
Error at Command Line:1 Column:53
Error report:
SQL Error: ORA-00904: "YEAR": invalid identifier
00904. 00000 - "%s: invalid identifier"
我的列都叫年和身体,但我收到错误。我怎样才能解决这个问题?
答案 0 :(得分:6)
好像您在DDL中的引号下指定了列名。
Oracle认为引号下的标识符区分大小写,因此创建一个列名为“body”或“year”的表将无法解析查询中的正文或年份,因为当您省略引号时,它会考虑上层案例变体。
所以当你有这个:
create table driver_case (registration varchar2(60),
make varchar2(60),
model varchar2(60),
gvw number,
"year" number,
"body" varchar2(60));
然后尝试做
select year, body from driver_case
然后Oracle尝试查找列“YEAR”,“BODY”(记住,没有带引号的标识符转换为大写),这与表中的“year”,“body”不同。
您的解决方案?
我在此SQL Fiddle
中演示了上述观点答案 1 :(得分:0)
试试这个:
INSERT
WHEN city='palanpur' THEN INTO Ashish
When city='Aburoad' THEN INTO abhi
SELECT no, name
FROM arpit;