Por eso no puedo evitar que mi programa PL / SQL en el punto de interrupción que yo pongo en SAPO

StackOverflow https://stackoverflow.com/questions/1706163

  •  19-09-2019
  •  | 
  •  

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

¿Fue útil?

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top