2009-11-10 80 views
1

設置停止我的PL/SQL程序,我有一個簡單的Oracle存儲過程PROC1如下:爲什麼我不能在斷點我蟾蜍

CREATE OR REPLACE PROCEDURE SYS.proc1 
IS 
    total NUMBER := 0; 
    temp INTEGER := 0; 
BEGIN 
    FOR i IN 1 .. 5 
    LOOP 
     temp := 2 * i; 
     total := total + temp; 
    END LOOP; 

    DBMS_OUTPUT.put_line (total); 
END; 

PROC1的所有者是SYS。 SYS足夠的權限來調試PROC1爲後續的SQL命令顯示:

SELECT * 
    FROM session_privs 
WHERE privilege LIKE '%DEBUG%'; 

我會得到以下結果:

DEBUG CONNECT SESSION 
DEBUG ANY PROCEDURE 

我使用Oracle 11g作爲以下SQL命令顯示:

SELECT * FROM v$database; 
SELECT * FROM v$instance; 

上查詢給我:

1223277241,ORCL,8/21/2009 5:28:25 PM,886308,8/21/2009 5:28:28 PM,1,10/15/2007 10:08:59 AM,NOARCHIVELOG,3510666,3399439,CURRENT,8/21/2009 5:28:26 PM,10008,3536169,11/10/2009 3:16:51 PM,NOT ALLOWED,8/21/2009 5:28:25 PM,READ WRITE,MAXIMUM PERFORMANCE,UNPROTECTED,ENABLED,1223308473,1223308473,PRIMARY,886308,DISABLED,SESSIONS ACTIVE,DISABLED,NONE,NO,NO,NO,NO,7,Microsoft Windows IA (32-bit),2,2,3536339,NO,NO,NO,orcl,0,DISABLED,,0,,,NO,,NO, 

1,orcl,WD00070136,11.1.0.6.0,11/9/2009 11:04:29 AM,OPEN,NO,1,STOPPED,,ALLOWED,NO,ACTIVE,PRIMARY_INSTANCE,NORMAL,NO 
蟾蜍

,我設置斷點PROC1,然後我點擊「執行與調試器PLSQL」按鈕。 TOAD運行proc1並立即顯示結果。它只是不停在斷點處。我不知道爲什麼。有沒有人遇到過這個問題?你如何解決它?萬分感謝!

ps:我用蛤蟆9.7.2

回答

1

你究竟把你的斷點放在哪裏?我希望你不要把它放在CREATE PROCEDURE這一行上。

如果你這樣做,它不起作用(該語句只創建過程,它不會執行它)。你必須從某處調用PROC1並把斷點在那裏它被稱爲行,像這樣:

BEGIN 
    proc1; -- place your breakpoint on this line 
END; 
+0

沒有Burz,我知道癩蛤蟆PL/SQL ediror將在您的存儲程序的每一行添加一個藍點你可以(應該)設置斷點。我只是在*** temp:= 2 * i; ***處設置了一個斷點。謝謝。 – 2009-11-12 01:50:19