动态网站制作指南 [  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教程 ]的信息

本月文章推荐
.oracle 使用杂记二.
.如何在Windows 2000下手工将Orac.
.创建Bitmap_Join_Indexes中的约束.
.利用modplsql使用灵活的参数传递.
.ORACLE DBA常用SQL脚本工具->管理.
.ZT-Statspack安装配置使用说明一.
.修改默认的Oracle XML Database监.
.TestKing Oracle 1Z0-031 Edt7.0.
.Oracle 数据库的备份与恢复[整理].
.Oracle 50个具有决定意义的重大事.
.对集合的整理资料,抛砖引玉!.
.怎样看oracle查询语句执行计划.
.在Windows上命令行如何手工起停O.
.Oracle 8i中字符集乱码解决.
.ORACLE数据库开发经验总结.
.从DBA到Oracle Applications DBA.
.grub为什么会在访问某些scsi硬盘.
.ERP performance tuning 第四天.
.Oracle8i与MS SQL SERVER之比较.
.Oracle数据库系统修复多个安全漏.

Oracle诊断案例-Sql_trace之二

发表日期:2008-2-9 |



  
link:

http://www.eygle.com/case/sql_trace_2.htm

 

问题说明:

很多时候
在我们进行数据库操作时
比如drop user,drop table等,经常会碰到这样的错误


ORA-00604: error occurred at recursive SQL level 1 .

这样的提示,很多时候是没有丝毫用处的.
本案例就这一类问题提供一个思路及方法供大家参考.

1. drop user出现问题

报出以下错误后退出


 

ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist .

 

关于 recursive SQL 错误
我们有必要做个简单说明.

我们知道,当我们发出一条简单的命令以后
Oracle数据库要在后台解析这条命令,并转换为Oracle数据库的一系列后台操作.
这些后台操作统称为递归sql

比如create table这样一条简单的DDL命令
Oracle数据库在后台,实际上要把这个命令转换为
对于obj$,tab$,col$等底层表的插入操作.

Oracle所作的工作可能比我们有时候想的要复杂的多.


2.跟踪问题

我们知道Oracle提供sql_trace的功能
可以用于跟踪Oracle数据库的后台递归操作.

通过跟踪文件,我们可以找到问题的所在
以下是格式化(tkprof)后的输出:


 

********************************************************************************

The following statement encountered a error during parse:

DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = 'WAPCOMM'

Error encountered: ORA-00942
********************************************************************************

Oracle把错误信息首先呈现出来
我们看到ORA-00942错误是由于SDO_GEOM_METADATA_TABLE表/视图不存在所致

问题由此可以定位

对于这一类的错误,定位问题以后解决的方法就要依据具体问题原因而定了。

 

3.问题定位

对于本案例,通过Metalink获得以下解释:

Problem Description
-------------------
The Oracle Spatial Option has been installed and you are encountering
the following errors while trying to drop a user, who has no spatial tables,
connected as SYSTEM:

ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
ORA-06512: at line 7


A 942 error trace shows the failing SQL statement as:


DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = '<user>'


Solution Description

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

(1) Create a synonym for SDO_GEOM_METADATA_TABLE under SYSTEM which points to

MDSYS.SDO_GEOM_METADATA_TABLE.

对于本例,为MDSYS.SDO_GEOM_METADATA_TABLE创建一个同义词即可解决.
是相对简单的情况.

(2) Now the user can be dropped connected as SYSTEM.


Related Documents

-----------------
<Note.159776.1> ORA-604 and ORA-942 Reported During DROP USER CASCA




4.实际处理

MDSYS.SDO_GEOM_METADATA_TABLE为Spatial对象
假如未使用Spatial选项,可以删除






 


SQL> connect / as sysdba
Connected.


SQL> select * from dba_sdo_geom_metadata order by owner;
select * from dba_sdo_geom_metadata order by owner
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-04063: view "MDSYS.DBA_SDO_GEOM_METADATA" has errors


SQL> select object_name from dba_objects where object_name like '%SDO%';

OBJECT_NAME
--------------------------------------------------------------------------------
ALL_SDO_GEOM_METADATA
ALL_SDO_INDEX_INFO
ALL_SDO_INDEX_METADATA
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
DBA_SDO_INDEX_METADATA
....
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
...
SDO_WITHIN_DISTANCE
USER_SDO_GEOM_METADATA
USER_SDO_INDEX_INFO
USER_SDO_INDEX_METADATA

88 rows selected.

SQL> drop user MDSYS cascade;

User dropped.

SQL> select owner,type_name from dba_types where type_name like 'SDO%';

no rows selected

SQL>


SQL> alter session set sql_trace=true;

Session altered.

SQL> drop user wapcomm;

User dropped.

SQL> alter session set sql_trace=false;

Session altered.

SQL> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit ProdUCtion
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production




这时用户得以顺利drop

 

5.一点总结

使用sql_trace可以跟踪数据库的很多后台操作
有利于我们发现问题的所在

很多时候,我们想要研究Oracle的内部活动或后台操作
也可以通过sql_trace跟踪

sql_trace/10046 是Oracle提供的最为有效的诊断工具之一.

 

 
上一篇:Oracle数据安全面面观(二) 人气:688
下一篇:Oracle诊断案例-Sql_trace之一 人气:397
浏览全部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号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成