动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.PL/SQL学习笔记(一).
.集合和成员函数.
.ORACLE 9I FOR AIX 5L 的安装.
.Ruby on Rails之Oracle应用.
.Oracle9iR2在ReahatAS3上的升级导.
.在存储过程中拥有"role"权限的特.
.oracle去除别名的方法.
.如何使用DBMS_REPAIR检测和修补数.
.专家谈:数据库及其应用专题分析.
.如何解决JOB的Interval输入参数过.
.ORACLE常用傻瓜问题1000问(之一).
.Oracle 基本知识.
.Oracle初学者入门指南-索引是干什.
.如何在Oracle10g中启动和关闭OEM .
.ORA-04098错误解决方法.
.快速启动oracle 8i SQL-Plus的好.
.程序,任务与承认.
.Oracle常用脚本 Script.
.RedHat 6.0 上 安装Oracle 8.
.利用Oracle9i XML DB 来解决复杂.

案例学习Oracle错误:ORA-00904

发表日期:2008-2-9 |


  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企业版中都试过了。   解决方案:一个有关你进行的操作的很少被人了解的事实就是你需要给表名起个别名,并且在调用成员函数的时候使用别名。那么,对你的查询进行如下修改:   SELECT s.marks.totmarks(marks.m1,marks.m2,marks.m3)

  FROM stdmarks s;   案例七:探究ORA-00904错误信息   问题描述:我注重到您对ORA-00904错误信息的解答,这个ORA-00904错误信息是在链接SQL 服务器数据库表之后,试图对不同类型的列进行选择时出现的。您的答案说,每个列都需要用双引号来包围。这样做好吗?我们有一个应用程序,但是我们并不希望有这样的限制。这里面有什么考虑吗?   解决方案:你可以试试看,改变你的SQL服务器实例的校验,使它不为默认情况下的大小写敏感。此时,表名“MyTable”和“MYTABLE”指的是同一个表。
上一篇:在Oracle中重编译所有无效的存储过程 人气:801
下一篇:对条件子句中带IN的SQL语句使用绑定变量 人气:839
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号