Oracle利用errorstack追蹤tomcat報錯ORA-00903 無效表名的問題_oracle

來源:腳本之家  責任編輯:小易  

使用 Oracle Multimedia 的導出方法導出數據庫中的 DICOM 數據要求數據庫向數據庫服務器的文件系統進行寫入操作。向文件系統寫入要求對您希望在其中寫入輸出 DICOM 文件的目錄對象上的用戶(PM 用戶)授予寫入權限。執行以下步驟:1.創建一個將 DICOM 數據導出到IMAGEDIR目錄中的文件的過程。從 SQL*Plus 會話中,執行以下腳本:create_export_proccreate_export_proc.sql代碼如下:Java代碼create or replace procedure dicom_export(source_id number,filename varchar2)asdcmSrc ordsys.orddicom;beginselect dicom into dcmSrc from medical_image_tablewhere id=source_id;dcmSrc.export(FILE,IMAGEDIR,filename);end;show errors;create or replace procedure dicom_export(source_id number,filename varchar2)asdcmSrc ordsys.orddicom;beginselect dicom into dcmSrc from medical_image_tablewhere id=source_id;dcmSrc.export(FILE,IMAGEDIR,filename);end;show errors;2.現在可以執行過程了。從 SQL*Plus 會話中,執行以下命令:Java代碼execute dicom_export(1,dicom_orig.dcm);execute dicom_export(1,dicom_orig.dcm);3.要查看創建的文件,打開另一個終端窗口,并在IMAGEDIR目錄下執行以下命令。Java代碼ls-al dicom_orig.dcmls-al dicom_orig.dcmwww.anxorj.tw防采集請勿采集本網。

現象

tomcat錯誤日志斷斷續續報ORA-00903: invalid table name,并無具體SQL與表名,需要排查哪段代碼寫入了無效表名,

實際上存儲過程向表中插入數據和sql執行的區別是不大的,只不過是存儲過程是用loop等循環插入,之后順序執行sql語句,不用命令行執行。123456789101112131415161718192021222324252627282930

可以通過ORACLE提供的errorstack追蹤報錯SQL。

這應該32313133353236313431303231363533e78988e69d8331333332613161是個bug,metalink上的說明如下 ORA-20001,ORA-2074:Consolidation Cross Instance 20001Errors ORA-20001;ORA-2074;PLS-115

由于生產數據無法取出,以下皆為測試環境測試還原生產錯誤。

憑感覺,你的語法沒錯。今天連不起公司服務器。周一連上給你試試,等著。我們創建的時候,用的是create or replace package。我將你包的內容改變了(因為我沒有創建你的那個數據表emp),運行

errorstack簡介

看提示.so文件找能安裝前補丁沒安裝安裝幾包:libaio-0.3.106-3.2.i386.rpm libXp-1.0.0-8.1.el5.i386.rpm xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.i386.rpm Oracle數據庫打看數據庫告警志

設置errorstack,在發生特定的ORA錯誤時會記錄發生問題的會話,語句以及各個進程的trace文件,

在alert日志中有記錄錯誤記錄的trace文件位置,也可以給單獨會話開啟errorstack,追蹤會話報錯信息,可以通過

下面兩個方法開啟:

/* level 0 僅轉儲錯誤堆棧

/* level 1 轉儲錯誤堆棧和函數調用堆棧

/* level 2 Level 1 + ProcessState

/* level 3 Level 2 + Context area (顯示所有cursors,著重顯示當前cursor)

(1)alter session/system

alter session/system set events '<error_number> trace name errorstack level 3';

/* error_number為ORA錯誤后編號。

(2)oradebug

/* 使用oradebug需要用戶具有sysdba權限

SQL> oradebug setospid/setmypid/setorapid <pid>; 

SQL> oradebug dump errorstack 3

可以通過下面方法查看當前系統開啟errorstack狀態:

SQL> set serveroutput on

SQL> oradebug setmypid

SQL> oradebug eventdump session/system;

追蹤

SQL> alter system set events '903 trace name errorstack level 3';

alter日志:

Tue Jun 09 14:23:44 2020

OS Pid: 10855 executed alter system set events '903 trace name errorstack level 3'

追蹤結果

alert日志信息:

alert日志信息:

Tue Jun 09 14:28:04 2020

Errors in file /u01/app/oracle/diag/rdbms/honor/honor1/trace/honor1_ora_7205.trc:

ORA-00903: 表名無效

Tue Jun 09 14:28:06 2020

Dumping diagnostic data in directory=[cdmp_20200609142806], requested by (instance=1, osid=7205), summary=[abnormal process termination].

查看對應trc追蹤文件:

*** 2020-06-09 14:28:04.303

*** SESSION ID:(26.661) 2020-06-09 14:28:04.303

*** CLIENT ID:() 2020-06-09 14:28:04.303

*** SERVICE NAME:(honor) 2020-06-09 14:28:04.303

*** MODULE NAME:(SQL*Plus) 2020-06-09 14:28:04.303

*** ACTION NAME:() 2020-06-09 14:28:04.303

dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0)

----- Error Stack Dump -----

ORA-00903: è¡¨å<90><8d>æ<97> æ<95><88>

----- Current SQL Statement for this session (sql_id=0vaqwchf1y3fq) -----

insert into null values(1)

找到具體sql,拿給開發人員,修改相關邏輯,錯誤修復。

關閉errorstack

SQL > alter system set events '903 trace name errorstack off';

總結

到此這篇關于Oracle利用errorstack追蹤tomcat報錯ORA-00903 無效表名的文章就介紹到這了,更多相關oracle ORA-00903 無效表名內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

試試這個:CREATE OR REPLACE TRIGGER tr_insertdeptBEFORE INSERT ON deptFOR EACH ROWbeginif:new.deptno>0 thenprint '報錯';RAISE_APPLICATION_ERROR(-20001,'不能插入大于70的DEPTNO!');ROLLBACK TRANSACTION;end if;end;內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • oracle實例啟動時報錯:ora-32004的解決方法
  • oracle環境通過sql*plus本地登錄時報錯的解決過程
  • oracle sql developer連接報錯(ora-12505)的解決方案(兩種)
  • oracle12c安裝報錯:prvf-0002的解決方法
  • oracle(plsql)生成流水號
  • oracle 修改表結構 之alter constaints的使用
  • oracle刪除archivelog文件的正確方法
  • oracle dataguard中手工處理日志v$archive_gap的方法
  • oracle 使用遞歸的性能提示測試對比
  • oracle與sql server在企業應用的比較
  • oracle12c圖形化&靜默安裝踩坑的方法步驟
  • rman配置及rman常用命令操作
  • 基于oracle小數點前零丟失的問題分析
  • oracle常用sql查詢語句部分集合(圖文)
  • oracle 超簡單觸發器 Warning: Trigger created with compilation errors
  • oracle multimedia 干什么用的
  • oracle如何捕獲存儲過程報錯是哪一行
  • 求oracle opatch 8350262的詳細使用方法
  • oracle數據庫如何利用存儲過程向表中添加數據?
  • Oracle 報錯 Ora-20001
  • ORACLE 過程編譯錯誤,高手來解答!
  • oracle 10g 的告警日志alert
  • oracle數據恢復 要如何做?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁oracle實例啟動時報錯:ora-32004的解決方法oracle環境通過sql*plus本地登錄時報錯的解決過程oracle sql developer連接報錯(ora-12505)的解決方案(兩種)oracle12c安裝報錯:prvf-0002的解決方法oracle(plsql)生成流水號oracle 修改表結構 之alter constaints的使用oracle刪除archivelog文件的正確方法oracle dataguard中手工處理日志v$archive_gap的方法oracle 使用遞歸的性能提示測試對比oracle與sql server在企業應用的比較oracle12c圖形化&靜默安裝踩坑的方法步驟rman配置及rman常用命令操作基于oracle小數點前零丟失的問題分析oracle常用sql查詢語句部分集合(圖文)oracle 查看表空間的大小及使用情linux系統(x64)安裝oracle11g完oracle數據庫下載及安裝圖文操作oracle存儲過程基本語法介紹oracle 10g 安裝教程[圖文]oracle 如何查詢被鎖定表及如何解基于ora-12170 tns 連接超時解決oracle數據庫tns配置方法詳解oracle中to_date詳細用法示例(ororacle 創建表空間詳細介紹將oracle的create語句更改為alter語句使用oracle 管理員賬號密碼忘記的快速解決方法oracle rman還原時set newname文件名有空登錄oracle數據庫時密碼忘記的解決方法oracle中的的hint詳解如何查看數據庫alert日志文件oracle 11.2.0.4打補丁的方法oracle查看會話鎖定的所有對象代碼分享[oracle] 淺析令人抓狂的ora-01555問題淺析如何在tnsnames.ora中配置監聽
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载