ORACLE817上對同義詞執行DESC出現CORE DUMP
這個bug比較有紀念意義,這是我碰到的第一個Oracle的bug,如果說的比較嚴謹一些,這個bug是我碰到且意識到自己碰到bug的第一個bug。
當時接觸Oracle的時間不太長,對Oracle的基本概念有了一定了解,但是很少上METALINK,所以還不知道如何查詢bug的相關資訊,因此並不清楚引發這個錯誤的原因,也不清楚如何避免這個問題。不過錯誤現象記得十分的清楚,因為當時的場面比較“丟人”。
當時是在做一個ORACLE向SYBASE移植的專案,有SYBASE公司的人配合進行。為了這個專案,剛剛看完SYBASE的文件,對SYBASE的讀鎖機制印象比較深刻,而且又是做Oracle出身的,難免將ORACLE和SYBASE在鎖機制方面進行比較,而這種比較的結果可想而知,以此一直對SYBASE沒有太好的印象。
這種印象直接導致在和SYBASE的技術人員溝透過程中,總是會有意無意的提到Oracle的優點,比如鎖機制,比如穩定性,等等。
有一天和SYBASE人員一起處理一個問題的時候,在Oracle中對一個同義詞執行DESC,結果sqlplus直接出現CORE DUMP,而我剛剛還在說Oracle如何如何穩定。當時SYBASE的技術人員也對這個錯誤表示不可思議。而我更是第一次深刻認識了BUG這個東西。
如文章開頭提到的,當時還不知道如何去進一步診斷問題,所以這個bug就一直沒有下文了。雖然此後再沒有碰到過這個bug,不過這個bug的現象一直深刻的留在我的腦海裡面,直到前幾天,在METALINK中查詢其他的BUG時,無意間看到了這個bug的相關描述,當時就將這個bug的描述地址記錄了下來。打算在空閒的時候,重現這個問題。
這兩天有點時間,於是在網上尋找Oracle817的資源,準備重現並記錄在Oracle職業生涯中碰到的第一個bug。
首先重現一下bug:
SQL> CONN TEST/TEST
Connected.
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.0.0 - 64bit Production
PL/SQL Release 8.1.7.0.0 - Production
CORE 8.1.7.0.0 Production
TNS for Solaris: Version 8.1.7.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
SQL> CREATE TABLE T (ID NUMBER);
Table created.
SQL> CREATE PUBLIC SYNONYM T FOR T;
Synonym created.
SQL> DESC T
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
SQL> DROP TABLE T;
Table dropped.
SQL> DESC T
Segmentation Fault (core dumped)
bash-2.03$
錯誤發生的前提是同名的PUBLIC同義詞指向的目標物件被刪除。如果是普通同義詞,或者PUBLIC同義詞和原物件不同名,都不會導致這個錯誤的發生:
SQL> CONN TEST/TEST
Connected.
SQL> CREATE TABLE TEST (ID NUMBER);
Table created.
SQL> CREATE SYNONYM S_TEST FOR TEST;
Synonym created.
SQL> DESC S_TEST
Name Null? Type
----------------------------------------- -------- -------------------
ID NUMBER
SQL> DROP TABLE TEST;
Table dropped.
SQL> DESC S_TEST
ERROR:
ORA-04043: object TEST.TEST does not exist
SQL> DROP SYNONYM S_TEST;
Synonym dropped.
SQL> CREATE TABLE TEST (ID NUMBER);
Table created.
SQL> CREATE PUBLIC SYNONYM S_TEST FOR TEST;
Synonym created.
SQL> DESC S_TEST
Name Null? Type
----------------------------------------- -------- ------------------
ID NUMBER
SQL> DROP TABLE TEST;
Table dropped.
SQL> DESC S_TEST
ERROR:
ORA-04043: object TEST.TEST does not exist
METALINK在文件Doc ID: Note:271217.1詳細描述了這個bug,這個bug影響整個817版本,在9014和9201版本中被FIXED。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-349407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 匯出oracle公有同義詞Oracle
- 匯出Oracle中的同義詞Oracle
- 【Oracle】-【同義詞】-public與非public同義詞Oracle
- 物件、同義詞和公有同義詞順序選取物件
- 【求助】sqlplus出現core dump的提示SQL
- 授權與同義詞
- ORACLE公有/私有同義詞Oracle
- 詳解同義詞(synonym)
- DOCKER上執行DOTNET COREDocker
- Oracle出現ORA-01775: 同義詞的迴圈鏈問題Oracle
- pytorch 程式碼出現 ‘segmentation fault (core dump)’ 問題PyTorchSegmentation
- 中考常見同義詞和同義短語總結
- Oracle中的同義詞SYNONYMOracle
- Oracle同義詞建立方法Oracle
- 多層巢狀同義詞巢狀
- Oracle同義詞 kingsql作品OracleSQL
- 官檔同義詞學習
- SYS查詢不到的同義詞
- 資料庫鏈與同義詞資料庫
- Oracle同義詞建立方法(轉)Oracle
- SQLServer訪問Oracle(通過同義詞-檢視-資料字典)出現的問題SQLServerOracle
- Linux環境中以daemon方式執行的程式生成core dumpLinux
- 實驗:用檢視加同義詞實現資料安全
- 使用datapump 匯出匯入同義詞(export and import synonym using datapump)ExportImport
- 6.5. 常用物件——6.5.4. 同義詞物件
- Oracle資料庫開發——同義詞Oracle資料庫
- Linux Core DumpLinux
- 同義詞相似度可以怎樣計算
- 同義詞The schema object cannot be contained in a package.ObjectAIPackage
- 學習筆記 過程、同義詞、序列筆記
- JAVA執行緒dump的分析Java執行緒
- 呼叫MapReduce對檔案中單詞出現次數進行統計
- 【原創】匯出所有物件(表、索引、檢視、同義詞)的建立指令碼物件索引指令碼
- Linux core dump使用Linux
- Elasticsearch:使用同義詞 synonyms 來提高搜尋效率Elasticsearch
- 【學習】SQL基礎-017-同義詞SQL
- Oracle之處理synonym同義詞無效物件Oracle物件
- Oracle——04同義詞與資料庫連結Oracle資料庫