- 浏览: 1003138 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
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
发表评论
-
sys.dbms_transaction.local_transaction_id出现的问题
2012-07-20 11:54 3304何時會觸發DBMS_TRANSACTION.LOCAL_TRA ... -
ORACLE 11GR2 OEM配置出错解决
2012-07-14 19:21 5086错误描述如下: 2012-7-14 18:23:11 ... -
ORA11G ORA-00845 错误
2012-06-26 13:39 835Oracle 11g的Linux版本在修改了MEMORY_TA ... -
oracle.net.common.NetGetEnv.getDNSDomain
2012-06-07 01:48 1151今天安装LINUX AS 4和ORACLE 10.2,安装成功 ... -
emctl 提示 ora-28001 口令已经实效 解决办法
2011-10-24 00:41 1835What to do when Enterprise Mana ... -
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262)
2011-05-20 17:29 6961报错信息如下: 2011-03-09 11:06:10 Th ... -
Oracle HowTo:如何在Linux上扩展SGA超过1.7G
2011-03-24 01:28 923今天一台Linux服务器扩展了一下内存,达到4G,开发的人自己 ... -
error while loading shared libraries: libclntsh.so.10.1: cannot open shared 问题解决
2011-01-21 16:23 120011.运行csscan命令显示如下错误 [oracle@rac ... -
“Error in invoking target ‘client_sharedlib’ of makefile ‘/home/oracle/oracle/pr
2011-01-13 17:35 11903今天同事在安装oracle的时候总是报这个错误: &qu ... -
如何处理Oracle中的坏块[ZT]
2010-12-19 21:56 1224一. 什么是数据库的坏 ... -
bug 7716219 hash group by显示消耗大量的temp 表空间
2010-12-07 17:47 2149SQL> set autotrace traceonly ... -
ORA-08102: TRYING TO MANIPULATE A JOB IN DBA_JOBS [ID 1036858.6]
2010-12-03 23:52 1260***Checked for relevance on 17- ... -
ORA-14074: partition bound must collate higher than that of the last partition
2010-10-09 16:26 36501. 创建分区表 create table zhanglei ... -
ora-12560问题解决
2010-09-16 11:30 15931.监听服务没有起起来 ... -
ORA-20000故障排除手记
2010-09-02 01:43 23501、发现故障。 在Oracle10.2.0.1的aler ... -
ORA-17502 与 ORA-15173 错误解决
2010-05-21 17:27 3952用rman恢复spfile时,报错误如下: RM ... -
Dropping A Disk From ASM Diskgroup Does Not Remove It From v$ASM_DISK
2010-05-21 10:42 1493Applies to: Oracle Serv ... -
ORA-19599 When backing up an archivelog that is corrupt [ID 461239.1]
2010-05-13 13:56 2670Applies to: Oracle Server - E ... -
ASMCMD fails to start on module libnnz10.so, permission denied
2010-05-13 01:14 2532ASMCMD fails to start on modu ... -
Errors ORA-00600 [kclchkblk_4] and ORA-00600 [2662] After Recovery of Datab
2010-05-12 15:45 1731Applies to: Oracle Server - E ...
相关推荐
今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现: *** ACTION NAME:() 2009-04-01 09:31:00.762*** MODULE NAME:(JDBC Thin Client) 2009-04-01 09:31:00.762*** SERVICE NAME:(SYS$...
Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法。都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的...
ORA-609 : opiodr aborting process unknown ospid (4116_6104) 这时候朋友怀疑是不是监听器配置问题,就把原先的监听器删除重建了下,问题依然。 网上有个解决TNS-12535错误的案例,平台和版本都很类似,如下:...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
8.13 ORA-01555成因与解决 8.14 Oracle 11g闪回数据归档 8.15 AUM下如何重建UNDO表空间 8.16 使用Flashback Query恢复误删除数据 8.17 诊断案例之一:释放过度扩展的UNDO空间 8.18 特殊...
│ 04.ORA-01200错误裸设备恢复 │ 05.Oracle数据库无响应故障的处理 │ 06.RAC环境诊断案例一则 ├─第三篇 SQL调优篇 │ 01.合理利用索引解决性能问题 │ 02.SQL优化与调整实践 │ 03.索引访问与数据读取 │ 04....
6.2.7 诊断和解决ORA-04031错误 262 6.2.8 Library Cache Pin及Library Cache Lock分析 273 6.2.9 诊断案例一:version_count过高造成的Latch竞争解决 281 6.2.10 V$SQL与V$SQLAREA视图 287 6.2.11 Oracle ...
ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句 视图的删除:DROP VIEW VIEW_NAME语句删除视图。 删除视图的定义不影响基表中的数据。 只有视图所有者和具备DROP VIEW权限的用户可以删除视图。 视图被删除...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
【发现异常】地产客储系统数据库Oracle_192.168.xx.xx,192.168.xx.xx,数据库customer,连接错误,0 ORA-00257: archiver error. Connect internal only, until freed. 【发生时间】2018.07.04 09:12:21 二、错误原因...