tinguo002

           

          ORA-06553 PLS-320

          ORACLE ORA-06553 PLS-320 錯誤

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

          數據庫是10GR2 的版本

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

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

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

          檢查操作的表,是存在數據庫中的,并且表的狀態也是有效的。

          網上找了下這錯誤,并發現了一些類似情況的帖子,很多帖子的共同點都是表結構中存在ORACLE 關鍵字。

          于是檢查表結構的字段名,發現有一個字段名為NUMBER (這很明顯是ORACLE 的關鍵字)

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

          于是分析了下原因

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

          所以PLSQL無法區分是NUMBER 數據類型還是字段NUMBER,SQL語句通過給字段兩邊加“” 雙引號可以讓ORACLE 知道是字段不是關鍵字

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

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

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



          歡迎大家訪問我的個人網站 萌萌的IT人

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

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 监利县| 京山县| 乡城县| 河北省| 凌海市| 富锦市| 文水县| 济阳县| 房产| 义马市| 柏乡县| 宿州市| 锦屏县| 丰县| 双柏县| 晴隆县| 广西| 托克托县| 平阳县| 新民市| 房产| 河池市| 龙门县| 新宁县| 柘荣县| 巴彦县| 固安县| 呼图壁县| 额济纳旗| 宜宾县| 惠州市| 耿马| 芷江| 阿拉善右旗| 冷水江市| 芮城县| 宁波市| 色达县| 麦盖提县| 和林格尔县| 广丰县|