• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
案例学习Oracle错误:ORA-00904
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
案例学习Oracle错误:ORA-00904
软件发布 案例学习Oracle错误:ORA-00904
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> 案例学习Oracle错误:ORA-00904

案例学习Oracle错误:ORA-00904

添加时间: 2008-4-27 0:47:06  作者: Oracle指导  阅读次数:281   来源: http://www.d9soft.com

       


  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的数据库链接时,用select * 的时候字段名是用双引号引起来的。你创建表的语句加了双引号的吗?估计是PD类似的工具创建的脚本吧?

  看下面的例子

  SQL> create table test ("id" number not null);

  表已创建。

  SQL> select ID FROM test;

  select ID FROM test

  *

  ERROR 位于第 1 行:

  ORA-00904: "ID": 无效的标识符

  SQL> select id from test;

  select id from test

  *

  ERROR 位于第 1 行:

  ORA-00904: "ID": 无效的标识符

  SQL> desc test;

  名称 是否为空? 类型

  ----------------------------------------- -------- ------------

  id NOT NULL NUMBER

  SQL> select "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是否存在:

  select owner,object_name,object_type,object_id,status

  from dba_objects where object_name='exu8jbqu';

  发现存在。重新执行$ORACLE_HOME/rdbms/admin/catexp.sql 创建视图。

  重新执行exp成功。问题解决。


  案例三:

  环境 unix+oracle

  在做完全导出的时候,导出表都正常但到导出同义词时出错,错误如下:

  exporting synonyms

  exp-0000 racle error 904 encountered

  ora-00904 invalid column name

  exp-0000 exp terminaled unsuccessful

  使用任何一个用户导出该的数据同样在这个地方停住,请问这是由于什么情况造成的,该如何解决才能正常exp整个数据库呢?之前碰上过类似的情况: 数据库被改了字符集后,导出时也是到synonym的时候出错误,报"shortname" 错误,后来把字符集改回原来安装的时候选择的字符集即可。 使这个问题吗?

  解决方案:原因不是字符集的问题,而是同义词引起的,找出来将其删除就可以了。

  案例四:Oracle环境中访问所有的SQL Server字段出错

  问题描述:我刚刚从Oracle建立了一条到SQL Server的连接,使用的是普通的连接,我想要执行一条select * from tablename@dblink 的命令。然而,我注意到SQL Server表中所有的字段都无法在Oracle环境中访问。当我试图选择我认为应该在表中的字段的时候,我得到ORA-00904的错误信息:无效列名。针对这个问题的可能的解释和解决方案是什么?

  解决方案:当你在你的语句中指定了列名的时候,确保你用双引号括住了列名,并且名字是区分大小写的。例如:SELECT "column_A","Column_B" FROM "TableXYz"。

  Oracle倾向于将上述字母转换为大写字母,SQL Server则对大小写更加敏感。这就是最有可能的原因。

  案例五:不访问系统表获取无效列名

  问题描述:当我从我的应用程序中运行SQL语句的时候,我得到如下的错误信息:“ORA-00904”无效列名。我的问题是,在不访问系统表的时候,有没有一种方式可以获得有关这个错误的更多信息,例如那些无效的列名?

  解决方案:当你获得这个消息的时候运行了什么查询?你的答案就在这里。运行的查询中的一个列是无效的。如果你能运行这个查询,那么你就可以看到包括了查询中表的信息的“系统表”。只需要开启SQL*Plus 会话,并且对表(或者一些表)进行描述。你的查询中的一个列就不会是其中一个表的有效列名了。

  如果你不知道SQL语句是什么,那么你就要运行的时候进行追踪,找出错误中的语句。如果你不熟悉,不知道该怎么做的话,需要请求数据库 管理 员的帮助。

  案例六:查看拥有抽象字段数据类型的表中记录出错

  问题描述:我想要查看一个表中记录,这个表中有一个字段具有抽象的数据类型,我创建了如下的类型:

  create or replace type marks_ty as object

  (m1 number(3),

  m2 number(3),

  m3 number(3),

  member function totmarks(m1 in number,m2 in

  number,m3 in number)

  return number);

  /

  然后我创建了如下的类型体:

  create or replace type body marks_ty as

  member function totmarks(m1 number,m2 number,m3

  number)

  return number is

  begin

  return (m1+m2+m3);

  end;

  end;

  /


 其次,创建了如下的表:

  create table stdmarks

  ( student_id number(4),

  marks marks_ty);

  然后,我向其中插入了一些记录。之后,我执行了如下的语句:

  select marks.totmarks(marks.m1,marks.m2,marks.m3)

  from stdmarks;

  但是我却碰到了如下的错误信息:

  select marks.totmarks(marks.m1,marks.m2,marks.m3)

  from stdmarks

  *

  ERROR at line 1:

  ORA-00904: invalid column name

  请帮助我。我在Oracle 企业 版中都试过了。

  解决方案:一个有关你进行的操作的很少被人了解的事实就是你需要给表名起个别名,并且在调用成员函数的时候使用别名。那么,对你的查询进行如下修改:

案例学习Oracle错误:ORA-00904(1) 第 [1] [2]  下一页

 

上下文章:

 

上一篇文章: Sandy’socp1z0-001Exam 下一篇文章: 案例学习Oracle错误:TNS-00510

相关文章:

  • 如何手动创建oracle数据库
  • oracle 多元化控制文件
  • Oracle数据库的快照是一个表
  • 学习Ruby-Web程序开发的10条理由
  • 删除Oracle数据库中重复的没用数据

相关软件:

  • Turbo C for Windows 集成实验与学习环境 V6.11
  • 汇编语言学习工具 3.6
  • EnglishField英语学习软件 7.8
  • 限时英语(初中英语学习软件) 6.4
  • 英语学习王 V2007 Build 1221 真人发音版
  • C/C++程序设计学习与实验系统 2008.14

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • ORACLE数据库简介
  • 案例学习Oracle错误:ORA-00904

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • AIX下自动启动Oracle数据库与监听...

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有