導航:首頁 > 源碼編譯 > oracle查詢無效編譯對象

oracle查詢無效編譯對象

發布時間:2022-05-03 15:14:43

⑴ oracle 過程 重新編譯也無效

編譯完成,不代表裡面語句沒問題,這種情況是存儲過程里存在某種錯誤
在 SQL *Plus 或者 PL/SQL Developer 的 Command Windows 中,執行
show errors procere USP_EXCEPTION;
查看一下錯誤是什麼.

我的修改如下:
CREATE OR REPLACE PROCEDURE USP_EXCEPTION(EMPNO INTEGER, --批次ID
P_FM NUMBER, --分母
P_FZ NUMBER, --分子
P_RESULT OUT NUMBER --結果
) IS
V_RAISE EXCEPTION; --異常處理
type type_table_pcmx is varray(4) of varchar2(20);
TABLE_PCMX type_table_pcmx;
BEGIN
IF P_FZ = 0 THEN
RAISE V_RAISE;
END IF;
P_RESULT := P_FM / P_FZ;
SELECT ENAME, EMPNO, JOB, DEPTNO
INTO TABLE_PCMX(1),TABLE_PCMX(2),TABLE_PCMX(3),TABLE_PCMX(4)
FROM EMP
WHERE EMPNO = EMPNO;
EXCEPTION
WHEN V_RAISE THEN
RAISE_APPLICATION_ERROR(-20010, 'ERROR:分子為零!');
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20011, 'ERROR:批次明細不存在!');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20012, 'ERROR:數據錯誤!');
END;

⑵ 如何在Oracle中重編譯所有無效的存儲過程

:在SQL_PLUS中:spool ExecCompProc.sql select 'alter procere ' ||object_name||' compile;' From all_objects where status = 'INVALID' and object_type = 'PROCEDURE'; spool off @ExecCompProc.Sql;整理成一個存儲過程:Create Or Replace Procere Zl_Compile_Invalid_Procere AsStrsql Varchar2(200);BeginFor x In (Select Object_Name From All_Objects Where Status = 'INVALID' And Object_Type = 'PROCEDURE') LoopStrsql := 'Alter Procere ' || x.Object_Name || ' Compile';Begin Execute Immediate Strsql; Exception--When Others Then Null; When OTHERS Then dbms_output.put_line(Sqlerrm); End;End Loop;End;最後執行:exec Zl_Compile_Invalid_Procere;如果要看到無法重編譯的過程的出錯信息,需要執行前設置set serverout on。

⑶ oracle導完數據為什麼要編譯無效對象

網友採納如果無效對象的數量很少,那麼你可以逐個編譯這些對象. ALTER PACKAGE my_package COMPILE; ALTER PACKAGE my_package COMPILE BODY; ALTER PROCEDURE my_procere COMPILE; ALTER FUNCTION my_function COMPILE; ALTER TRIGGER my_trigger COMPILE; ALTER VIEW my_view COMPILE;

⑷ delphi adoquery進度條

我不知道你所謂的「Oracle無效對象」是神馬玩意,但顯示ADOQuery進度是有辦法的。
1、將ADOQuery的ExcuteOption屬性中的eoAsyncFetch設為True,使其能夠觸發非同步消息。
2、在ADOQuery的OnFetchProgress事件里處理進度,進度會顯示在窗體標題上:
procere TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
Self.Caption := '完成百分比: ' + IntToStr(Trunc(Progress / MaxProgress * 100)) + '% ';
Application.ProcessMessages;
end;

⑸ plsql裡面的編譯無效對象是什麼意思

Oracle中出現無效對象,就是因為在創建函數或存儲過程等,里邊的內容書寫不正確導致。如果要重新編譯,需要先修正錯誤,然後編譯。
工具:Oracle 10g、PL/SQL
步驟:
1、在PL/SQL中打開出現編譯錯誤的函數或存儲過程,這里以存儲過程為例。

2、右鍵點擊該存儲過程,選擇「編輯」。

3、根據錯誤提示,找到錯誤,並修改錯誤。

4、改正錯誤後,點擊左上方的「齒輪」狀按鈕。

5、運行成功後,則該存儲過程就會變為編譯成功的狀態。

⑹ ORACLE里怎麼看編譯錯誤

Oracle對於每一類錯誤都是編了號的,對應著編碼去找解決方案就行了。
一般來說,有很大一部分都是針對一類問題,這樣就省去了我們來排查錯誤有可能產生的原因這一步
就你上面的問題而言,我不知道你用的是哪個版本,也不知道你用沒用可視化工具(比如Navacat一類的),單單就oracle而言,你也可以看。不管你在哪裡運行,都是要給提示的,dos下要給,SQL plus也要給。

⑺ oracle 存儲過程查詢語句錯哪了對象sys.sel2無效。

create or replace procere sel2 as
v_name varchar2(10);
v_addr varchar2(20);

begin

select sname,addr
into v_name,v_addr
from stu5
where sname='張華';
dbms_output.putline(v_name||' '||v_addr);
end sel2;
/
-----------------
begin
sel2;
end ;
/

你的基本語法都不對,好好學習。

⑻ oracle存儲過程提示編譯完成但存在錯誤,如何查看錯誤

1、首先打開PL/SQL Developer軟體,新建sql窗口。

⑼ Oracle 定義存儲過程 不能執行,處於無效狀態。

無效狀態有兩種可能:

1、一種是你的存儲過程編輯沒有成功,創建了,但裡面有語法錯誤。

⑽ oracle存儲過程對象無效

以下逐行寫,不要一寫復制進去

begin
demo1;
end;
/

第四行的反斜杠不能省略

閱讀全文

與oracle查詢無效編譯對象相關的資料

熱點內容
物聯網平台php源碼 瀏覽:378
單片機怎麼關閉for 瀏覽:975
具認可性的江蘇加密軟體 瀏覽:616
點贊打賞源碼 瀏覽:278
python基礎面試 瀏覽:553
java源碼長什麼樣 瀏覽:680
招投標網源碼 瀏覽:497
dos暫停命令 瀏覽:893
經典趨勢交易策略源碼 瀏覽:16
櫻校解壓聲音大全 瀏覽:763
程序員小周 瀏覽:322
怎樣做小雞解壓神器 瀏覽:742
那麼發動機的壓縮比會減小 瀏覽:472
第一號命令 瀏覽:655
朕的命令 瀏覽:35
手機常見應用文件夾名字 瀏覽:543
程序員和健美教練 瀏覽:14
如何成為伺服器商 瀏覽:655
我的世界伺服器如何該密碼 瀏覽:443
房地產評估系統源碼 瀏覽:34