perché non riesco a fermare il mio programma di pl / sql al punto di rottura, che ho impostato in ROSPO
Domanda
Ho una semplice stored procedure Oracle proc1 come segue:
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;
il proprietario di proc1 è SYS. sys dispongono di privilegi sufficienti per eseguire il debug proc1 come mostra il seguente comando SQL:
SELECT *
FROM session_privs
WHERE privilege LIKE '%DEBUG%';
mi arriva il seguente risultato:
DEBUG CONNECT SESSION
DEBUG ANY PROCEDURE
i utilizzare Oracle 11g come i seguenti comandi SQL mostra:
SELECT * FROM v$database;
SELECT * FROM v$instance;
le query superiori mi dà:
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,
e
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
in ROSPO, ho impostato punto di interruzione proc1, poi fa clic sul pulsante "eseguire il plsql con debugger". ROSPO corsa proc1 e visualizzare il risultato immediatamente. Semplicemente non si ferma al punto di interruzione. Non so perché. Qualcuno mai incorrere in questo problema? come si fa a risolvere il problema? Grande grazie!
ps: io uso rospo 9.7.2
Soluzione
Dove esattamente si fa a mettere il punto di interruzione? Spero che tu non mettere sulla linea CREATE PROCEDURE
.
Se lo metti su quel tipo, non funziona (che istruzione crea solo la procedura, non esegue esso). Dovete chiamare proc1 da qualche parte e mettere il punto di interruzione sulla linea dove viene chiamato, in questo modo:
BEGIN
proc1; -- place your breakpoint on this line
END;