|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。oracle
link:
http://www.eygle.com/case/sql_trace_2.htm
成绩申明:
良多时分
在我们举行数据库操纵时
好比dropuser,droptable等,常常会碰到如许的毛病
ORA-00604:erroroccurredatrecursiveSQLlevel1.
如许的提醒,良多时分是没有涓滴用途的.
本案例就这一类成绩供应一个思绪及办法供人人参考.
1.dropuser呈现成绩
报出以下毛病前进出
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-00942:tableorviewdoesnotexist.
关于recursiveSQL毛病
我们有需要做个复杂申明.
我们晓得,当我们收回一条复杂的命令今后
Oracle数据库要在背景剖析这条命令,并转换为Oracle数据库的一系列背景操纵.
这些背景操纵统称为递回sql
好比createtable如许一条复杂的DDL命令
Oracle数据库在背景,实践上要把这个命令转换为
关于obj$,tab$,col$等底层表的拔出操纵.
Oracle所作的事情大概比我们偶然候想的要庞大的多.
2.跟踪成绩
我们晓得Oracle供应sql_trace的功效
能够用于跟踪Oracle数据库的背景递回操纵.
经由过程跟踪文件,我们能够找到成绩的地点
以下是格局化(tkprof)后的输入:
********************************************************************************
Thefollowingstatementencounteredaerrorduringparse:
DELETEFROMSDO_GEOM_METADATA_TABLEWHERESDO_OWNER=WAPCOMM
Errorencountered:ORA-00942
********************************************************************************
Oracle把毛病信息起首出现出来
我们看到ORA-00942毛病是因为SDO_GEOM_METADATA_TABLE表/视图不存在而至
成绩由此能够定位
关于这一类的毛病,定位成绩今后办理的办法就要根据详细成绩缘故原由而定了。
3.成绩定位
关于本案例,经由过程Metalink取得以下注释:
ProblemDescription
-------------------
TheOracleSpatialOptionhasbeeninstalledandyouareencountering
thefollowingerrorswhiletryingtodropauser,whohasnospatialtables,
connectedasSYSTEM:
ERRORatline1:
ORA-00604:erroroccurredatrecursiveSQLlevel1
ORA-00942:tableorviewdoesnotexist
ORA-06512:atline7
A942errortraceshowsthefailingSQLstatementas:
DELETEFROMSDO_GEOM_METADATA_TABLEWHERESDO_OWNER=<user>
SolutionDescription
--------------------
(1)CreateasynonymforSDO_GEOM_METADATA_TABLEunderSYSTEMwhichpointsto
MDSYS.SDO_GEOM_METADATA_TABLE.
关于本例,为MDSYS.SDO_GEOM_METADATA_TABLE创立一个同义词便可办理.
是绝对复杂的情形.
(2)NowtheusercanbedroppedconnectedasSYSTEM.
RelatedDocuments
-----------------
<Note.159776.1>ORA-604andORA-942ReportedDuringDROPUSERCASCA
4.实践处置
MDSYS.SDO_GEOM_METADATA_TABLE为Spatial工具
假如未利用Spatial选项,能够删除
SQL>connect/assysdba
Connected.
SQL>select*fromdba_sdo_geom_metadataorderbyowner;
select*fromdba_sdo_geom_metadataorderbyowner
*
ERRORatline1:
ORA-00942:tableorviewdoesnotexist
ORA-04063:view"MDSYS.DBA_SDO_GEOM_METADATA"haserrors
SQL>selectobject_namefromdba_objectswhereobject_namelike%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
88rowsselected.
SQL>dropuserMDSYScascade;
Userdropped.
SQL>selectowner,type_namefromdba_typeswheretype_namelikeSDO%;
norowsselected
SQL>
SQL>altersessionsetsql_trace=true;
Sessionaltered.
SQL>dropuserwapcomm;
Userdropped.
SQL>altersessionsetsql_trace=false;
Sessionaltered.
SQL>exit
DisconnectedfromOracle8iEnterpriseEditionRelease8.1.7.4.0-64bitProduction
WiththePartitioningoption
JServerRelease8.1.7.4.0-64bitProduction
这时候用户得以顺遂drop
5.一点总结
利用sql_trace能够跟踪数据库的良多背景操纵
有益于我们发明成绩的地点
良多时分,我们想要研讨Oracle的外部举动或背景操纵
也能够经由过程sql_trace跟踪
sql_trace/10046是Oracle供应的最为无效的诊断工具之一.
使用它开发程序也是非常简单的。” |
|