Por eso no puedo evitar que mi programa PL / SQL en el punto de interrupción que yo pongo en SAPO
Pregunta
i tiene un oráculo sencilla almacenado proc1 procedimiento como sigue:
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;
El propietario de proc1 es sys. sys tienen suficientes privilegios para depurar proc1 como muestra el comando de seguimiento SQL:
SELECT *
FROM session_privs
WHERE privilege LIKE '%DEBUG%';
Voy a por el siguiente resultado:
DEBUG CONNECT SESSION
DEBUG ANY PROCEDURE
i uso 11g Oracle como muestra la siguiente comandos SQL:
SELECT * FROM v$database;
SELECT * FROM v$instance;
las consultas superiores me da:
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,
y
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
en SAPO, puse punto de ruptura en proc1, a continuación, hacer clic en el botón "ejecutar el plsql con depurador". SAPO plazo proc1 y mostrar el resultado inmediato. Simplemente no se detiene en punto de interrupción. No sé por qué. ¿Alguien alguna vez se encuentra con este problema? ¿Como lo arreglas? Grandes gracias!
ps: i uso sapo 9.7.2
Solución
Cuando es exactamente lo que pone su punto de ruptura? Espero que no lo ponga en la línea CREATE PROCEDURE
.
Si lo pones en que, al igual, que no funciona (esa declaración sólo crea el procedimiento, que no lo ejecuta). Tienes que llamar proc1 de alguna parte y poner el punto de interrupción en la línea donde se le llama, como esto:
BEGIN
proc1; -- place your breakpoint on this line
END;