oracle ORA 00904 错误:无效标识符

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11277135/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 00:56:18  来源:igfitidea点击:

ORA 00904 Error:Invalid Identifier

sqloracleora-00904

提问by Mistu4u

I have installed Oracle 10g in my virtual XP and created a table using

我已经在我的虚拟 XP 中安装了 Oracle 10g 并使用创建了一个表

create table reg1 (
  fname varchar2(30),
  lname varchar2(30),
  addr varchar2(30),
  mail varchar2(30),
  occu varchar2(30),
  uname varchar2(30),
  passwd varchar2(30)
);

and the table created successfully.But when I am trying to fetch the values by simple query like

并且表创建成功。但是当我尝试通过简单的查询获取值时

select fname, lname 
  from reg1 
 where uname="bbb";

I am getting error like

我收到类似的错误

ORA-00904: "bbb": invalid identifier

ORA-00904: "bbb": 无效标识符

I cannot understand what I have done wrong here.

我无法理解我在这里做错了什么。

回答by Andrew Leach

Use single quotes.

使用单引号。

select fname,lname from reg1 where uname='bbb';

回答by Ben

Oracle uses double quotes "in order to identify cased object names. For instance the table "test"is not the same as the table test.

Oracle 使用双引号"来标识大小写的对象名称。例如 table"test"与 table 不同test

Strings should be enclosed by single quotes, '.

字符串应该用单引号括起来,'.

Making your query:

进行查询:

select fname, lname from reg1 where uname = 'bbb';

What's actually happening in your query is Oracle is trying to find the column "bbb"in the table reg1, as this column doesn't exist you get the error thrown.

在您的查询中实际发生的是 Oracle 试图"bbb"在表中查找该列reg1,因为该列不存在您会抛出错误。