国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle診斷案例-Sql_trace之二

2024-08-29 13:30:27
字體:
供稿:網(wǎng)友

link:

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

 

問題說明:

很多時(shí)候
在我們進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)
比如drop user,drop table等,經(jīng)常會(huì)遇到這樣的錯(cuò)誤


ora-00604: error occurred at recursive sql level 1 .

這樣的提示,很多時(shí)候是沒有絲毫用處的.
本案例就這一類問題提供一個(gè)思路及方法供大家參考.

1. drop user出現(xiàn)問題

報(bào)出以下錯(cuò)誤后退出


 

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

 

關(guān)于 recursive sql 錯(cuò)誤
我們有必要做個(gè)簡(jiǎn)單說明.

我們知道,當(dāng)我們發(fā)出一條簡(jiǎn)單的命令以后
oracle數(shù)據(jù)庫(kù)要在后臺(tái)解析這條命令,并轉(zhuǎn)換為oracle數(shù)據(jù)庫(kù)的一系列后臺(tái)操作.
這些后臺(tái)操作統(tǒng)稱為遞歸sql

比如create table這樣一條簡(jiǎn)單的ddl命令
oracle數(shù)據(jù)庫(kù)在后臺(tái),實(shí)際上要把這個(gè)命令轉(zhuǎn)換為
對(duì)于obj$,tab$,col$等底層表的插入操作.

oracle所作的工作可能比我們有時(shí)候想的要復(fù)雜的多.


2.跟蹤問題

我們知道oracle提供sql_trace的功能
可以用于跟蹤oracle數(shù)據(jù)庫(kù)的后臺(tái)遞歸操作.

通過跟蹤文件,我們可以找到問題的所在
以下是格式化(tkprof)后的輸出:


 

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

the following statement encountered a error during parse:

delete from sdo_geom_metadata_table where sdo_owner = 'wapcomm'

error encountered: ora-00942
********************************************************************************

oracle把錯(cuò)誤信息首先呈現(xiàn)出來
我們看到ora-00942錯(cuò)誤是由于sdo_geom_metadata_table表/視圖不存在所致

問題由此可以定位

對(duì)于這一類的錯(cuò)誤,定位問題以后解決的方法就要依據(jù)具體問題原因而定了。

 

3.問題定位

對(duì)于本案例,通過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.

對(duì)于本例,為mdsys.sdo_geom_metadata_table創(chuàng)建一個(gè)同義詞即可解決.
是相對(duì)簡(jiǎn)單的情況.

(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.實(shí)際處理

mdsys.sdo_geom_metadata_table為spatial對(duì)象
如果未使用spatial選項(xiàng),可以刪除






 

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




這時(shí)用戶得以順利drop

 

5.一點(diǎn)總結(jié)

使用sql_trace可以跟蹤數(shù)據(jù)庫(kù)的很多后臺(tái)操作
有利于我們發(fā)現(xiàn)問題的所在

很多時(shí)候,我們想要研究oracle的內(nèi)部活動(dòng)或后臺(tái)操作
也可以通過sql_trace跟蹤

sql_trace/10046 是oracle提供的最為有效的診斷工具之一.

 

 
,歡迎訪問網(wǎng)頁(yè)設(shè)計(jì)愛好者web開發(fā)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 上林县| 丰都县| 开原市| 额敏县| 屯昌县| 乐清市| 武安市| 安达市| 寻乌县| 凯里市| 大渡口区| 淮滨县| 金川县| 建始县| 汝城县| 龙陵县| 南川市| 镇赉县| 泽州县| 康定县| 东光县| 宜宾县| 淳安县| 西安市| 中宁县| 杭锦旗| 遂川县| 陆良县| 观塘区| 子洲县| 沅陵县| 星子县| 宁波市| 新源县| 阿合奇县| 青龙| 呼伦贝尔市| 水城县| 水富县| 隆昌县| 虞城县|