ORA-00904 invalid column name ORA-00904: 无效的列名 Cause The column name entered is either missing or invalid. Action Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, it must be enclosed in double quotation marks. It may not be a reserved word. 原因:列丢失或无效列名。 方案:输入有效的列名。一个有效的列名必须是以字母开头,小于30个字符,并且只包含字母、数字或一些特殊的符号$,_,#。如果还包含其它的字符,那么这段字符必须用双引号引起来。列名不能是关键字。 案例一:创建表时出现的问题 问题描述: SQL> DESC S_CUSTOMER. 名称 是否为空? 类型 ----------------------------------------- id NOT NULL NUMBER(7) name NOT NULL VARCHAR2(50) phone VARCHAR2(25) address VARCHAR2(400) city VARCHAR2(30) state VARCHAR2(20) country VARCHAR2(30) zip_code VARCHAR2(75) credit_rating VARCHAR2(9) sales_rep_id NUMBER(7) region_id NUMBER(7) comments VARCHAR2(255) 但是当我SELECT的时候总是报错: SQL> SELECT ID FROM S_CUSTOMER. SELECT ID FROM S_CUSTOMER * ERROR 位于第 1 行: ORA-00904: "ID": 无效的标识符 怎么会这样呢? 解决方案:ORACLE通过访问SQL Server的数据库链接时,用0select * 的时候字段名是用双引号引起来的。你创建表的语句加了双引号的吗?估计是PD类似的工具创建的脚本吧? 看下面的例子 SQL> create table test ("id" number not null). 表已创建。 SQL> 0select ID FROM test. 0select ID FROM test * ERROR 位于第 1 行: ORA-00904: "ID": 无效的标识符 SQL> 0select id from test. 0select id from test * ERROR 位于第 1 行: ORA-00904: "ID": 无效的标识符 SQL> desc test. 名称 是否为空? 类型 ----------------------------------------- -------- ------------ id NOT NULL NUMBER SQL> 0select "id" from test. 未选定行 SQL> 案例二: 环境:solaris oracle 问题:exp时遇到 EXP-00008: ORACLE error 904 encountered ORA-00904: invalid column name EXP-00000: Export terminated unsuccessfully 提供的情况:wcs组使用java,所以判断是java的问题。ora-00904时oracle的一个bug。 所以需要使用errorstack来追踪错误。执行 alter system set events= 904 trace name errorstack . 然后到udump下查看trace文件。发现是exu8jbqu这个view的问题。 alter system set events= 904 trace name errorstack off . 查看exu8jbqu是否存在: 0select owner,object_name,object_type,object_id,status from dba_objects where object_name= exu8jbqu . 发现存在。重新执行$ORACLE_HOME/rdbms/admin/catexp.sql 创建视图。 重新执行exp成功。问题解决。