tinguo002

           

          ORA-06553 PLS-320

          ORACLE ORA-06553 PLS-320 錯誤

          前幾天遇到了一個存儲過程編譯無法通過的問題。

          數(shù)據(jù)庫是10GR2 的版本

          存儲過程編譯時報 ORA-06553 PLS-320 錯誤 以下是圖

          檢查過程語句無錯后還是無法編譯通過

          存儲過程非常簡單,接收一個值,然后根據(jù)傳進(jìn)來的值對一個表進(jìn)行刪除操作。

          檢查操作的表,是存在數(shù)據(jù)庫中的,并且表的狀態(tài)也是有效的。

          網(wǎng)上找了下這錯誤,并發(fā)現(xiàn)了一些類似情況的帖子,很多帖子的共同點(diǎn)都是表結(jié)構(gòu)中存在ORACLE 關(guān)鍵字。

          于是檢查表結(jié)構(gòu)的字段名,發(fā)現(xiàn)有一個字段名為NUMBER (這很明顯是ORACLE 的關(guān)鍵字)

          把這個NUMBER字段名改名,在重新編譯過程順利通過。

          于是分析了下原因

          有可能這是ORACLE PLSQL的一個BUG ,它在編譯的時候需要檢查過程中的對象的信息,由于對象中的字段是ORACLE 關(guān)鍵字

          所以PLSQL無法區(qū)分是NUMBER 數(shù)據(jù)類型還是字段NUMBER,SQL語句通過給字段兩邊加“” 雙引號可以讓ORACLE 知道是字段不是關(guān)鍵字

          由于沒有11G的環(huán)境無法測試11G是否解決了這問題

          --------------------------------------
          oracle 里修改字段名稱

          alter table "CHECKEXACT" rename column "DATE" to date1;   //這個DATE 要大寫且加""  ,要不然會出錯的。。。
          alter table "CHECKEXACT" rename column "DATE1" to "DATE";



          歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人

          posted on 2012-11-30 12:07 一堣而安 閱讀(596) 評論(0)  編輯  收藏 所屬分類: oracle

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 富平县| 大悟县| 云龙县| 鱼台县| 普定县| 云安县| 辽宁省| 乡宁县| 仙桃市| 玉门市| 承德市| 济源市| 大埔县| 潜江市| 蕲春县| 广饶县| 滨州市| 韶山市| 冕宁县| 南郑县| 翼城县| 镇雄县| 潮安县| 浦城县| 泽普县| 宁强县| 醴陵市| 昌平区| 九龙县| 朝阳市| 巫山县| 塘沽区| 阳信县| 台湾省| 辽阳县| 东山县| 东源县| 雅安市| 琼中| 夏邑县| 拉孜县|