日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle变态错误解决:ORA-00604: 递归 SQL 级别 2 出现错误

發布時間:2025/7/14 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle变态错误解决:ORA-00604: 递归 SQL 级别 2 出现错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle變態錯誤:


問題描述:

??????? 在使用sys用戶執行刪除infa用戶下表時,報如下錯誤:
???????? ORA-00604: 遞歸 SQL 級別 2 出現錯誤
???????? ORA-00942: 表或視圖不存在
???????? 查看E:/CO.Software/oracle/product/10.2.0/admin/orcl/bdump/alert_orcl.log發現當時報如下錯誤:
???????? ORA-00604: error occurred at recursive SQL level 2 ORA-00942: table or view does not exist
????????
???????? 同樣使用sys用戶在sqlplus模式和PL/SQL模式下作刪除infa用戶和刪除infa表空間都會報如上錯誤。

問題定位:

???????? 使用sqlplus sys/oracle as sysdba登陸
???????? 執行alter session set sql_trace=ture;
???????? 之后再次執行drop user infa cascade;
???????? 會報如下錯誤:
???????? ORA-00604: 遞歸 SQL 級別 2 出現錯誤
???????? ORA-00942: 表或視圖不存在
???????? 再執行alter session set sql_trace=false;
???????? 這時去E:/CO.Software/oracle/product/10.2.0/admin/orcl/udump路徑下查看剛剛時間點生成的trace文件:orcl_ora_4468.trc
???????? 在里面會找到如下sql:
???????? PARSE ERROR #1:len=273 dep=2 uid=0 oct=3 lid=0 tim=7580575894 err=942
???????? select position#,sequence#,level#,argument,type#,charsetid,charsetform,
??????????????????? properties,nvl(length, 0), nvl(precision#, 0),nvl(scale, 0),nvl(radix, 0), type_owner,type_name,type_subname,type_linkname,pls_type
???????? from argument$
????????????? where obj#=:1 and procedure#=:2 order by sequence# des
???????? 【如果上面執行的是drop表而不是drop用戶操作,則相應trace中sql如下:】
???????? 【SELECT topology??
???????????? FROM SDO_TOPO_METADATA_TABLE a, TABLE(a.Topo_Geometry_Layers) b??
??????????????? WHERE b.owner = 'SYS' AND b.table_name = 'OPB_ANALYZE_DEP' END OF STMT】

???????? 此時可以猜測sys用戶下argument$表不存在,使用PL/SQL登陸查看發現sys用戶下確實沒有argument$表。

問題解決:從另一臺oracle正常的機器中使用sys用戶登錄,將argument$表exp位dmp文件,將此dmp文件拿到本機,執行如下命令將argument$表導入到本機的sys用戶下:
????????? imp 'sys/oracle@orcl as sysdba'

此時再次執行刪除infa用戶下表,又報如下錯誤:

問題描述:

????????? ORA-00604: 遞歸 SQL 級別 1 出現錯誤 ORA-38301: 無法對回收站中的對象執行 DDL/DML

???????? 執行purge recyclebin和purge table 'table_name'問題也無法解決。

問題定位:

???????? 同樣使用使用sqlplus sys/oracle as sysdba登陸
???????? 執行alter session set sql_trace=ture;
???????? 之后再次執行drop table OPB_ANALYZE_DEP;
???????? 會報如下錯誤:ORA-00604: 遞歸 SQL 級別 1 出現錯誤 ORA-38301: 無法對回收站中的對象執行 DDL/DML
???????? 再執行alter session set sql_trace=false;
???????? 這時去E:/CO.Software/oracle/product/10.2.0/admin/orcl/udump路徑下查看剛剛時間點生成的trace文件orcl_ora_3920.trc
???????? 在里面會找到如下sql:
???????? PARSE ERROR #9:len=50 dep=1 uid=0 oct=3 lid=0 tim=10735596185 err=942
???????? select count(*) from association$ where obj# = :1
???????? 此時可以確定sys用戶下association$表也不存在。


問題解決:

???????? 同樣使用exp和imp方式將association$表導入到本機sys用戶中,
???????? 此時再次執行刪除infa用戶下表,成功!!!!!!!

???????? 免去了我重裝Oracle的工作量。

???????? 不過還不知道為什么我的Oracle sys用戶下會莫名其妙缺少了兩張系統表。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的oracle变态错误解决:ORA-00604: 递归 SQL 级别 2 出现错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。