【Oracle】Navicat出現 ORA-24344: 成功, 但出現編譯錯誤 的解決辦法

Navicat出現 ORA-24344: 成功, 但出現編譯錯誤 的解決辦法

相信很多朋友是在navicat中創建存儲過程的時候碰到的這個問題,我之前以爲是軟件的bug,但是想這麼大的公司不會出這種低級錯誤。來回折騰之後,找到了解決辦法,或者說測試辦法。如下。

1.在Navicat中新建一個SQL查詢窗口,鍵入以下存儲過程。
這段存儲過程的意思是 以一個整數爲參數,輸入工資最高的前幾個(參數值)員工的信息

create or replace procedure my_p (v_n in number) is
cursor csr is select * from emp order by sal DESC;
i number :=0;
begin
 for v_emp in csr loop
 i := i+1;
 dbms_output.put_line(v_emp.ENAME || '--' || v_emp.SAL);
 if i = v_n then
 exit;
 end if;
 end loop;
end;

2.選擇以上代碼 --> “運行已選擇的”
在這裏插入圖片描述
3.若出現以下信息,則說明軟件沒有問題。 而是我們(你自己)的代碼出問題了。
在這裏插入圖片描述
那麼這時候需要去檢查我們(你自己)的代碼,如dbms輸出時字段名連接字符串的時候,有無雙豎線、該有的分號有沒有加上。一般到這一步,90%朋友的問題基本解決了。
4.如果實在不行,那麼只能試一試這個辦法:

在窗口的左側,點擊你的用戶,比如我的SCOTT用戶
在這裏插入圖片描述
然後雙擊我們的EMP表(你自己需要操作的表),具體原理不太清楚,只是自己這麼弄一下之後,就不會出現編譯錯誤了…可能Navicat需要預加載數據?
在這裏插入圖片描述
5.再去運行代碼,這時候應該93.57%朋友的問題得到解決了。

tips:
a.網上說的大小寫問題我試過了,沒有影響。但是不排除Navicat版本的特殊性。我在這裏用的是Navicat12.1版本。
b.剩下的6.43%問題沒有解決,可能是其他問題,一般按照以上方法做過之後,基本都會解決。其他問題請在博下留言或[email protected]
c.記得要把數據庫和用戶選擇了。這裏會導致權限等問題。
在這裏插入圖片描述

在這裏插入圖片描述
摯謝閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章