warum kann ich nicht meine PL / SQL-Programm bei Breakpoint stoppen, die ich in TOAD gesetzt

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

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe eine einfache Oracle gespeicherte Prozedur proc1 wie folgt:

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;

der Besitzer proc1 ist sys. sys haben genug Privilegien wie die Folge SQL-Befehl zeigt debuggen proc1:

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

ich werde folgendes Ergebnis:

DEBUG CONNECT SESSION
DEBUG ANY PROCEDURE

ich verwende Oracle 11g wie die folgenden SQL-Befehle zeigen:

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

die oberen Anfragen gibt mir:

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,

und

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 TOAD, habe ich einen Haltepunkt in proc1, klicken Sie dann auf die Schaltfläche i "die plsql mit Debugger ausführen". TOAD Lauf proc1 und das Ergebnis sofort angezeigt werden soll. Es funktioniert einfach nicht an Haltepunkt zu stoppen. Ich weiß nicht, warum. Hat jemand jemals in dieses Problem? wie Sie das Problem beheben? Großer Dank!

ps: ich benutze Kröte 9.7.2

War es hilfreich?

Lösung

Wo genau setzen Sie Ihren Haltepunkt? Ich hoffe, Sie legen es nicht auf der CREATE PROCEDURE Linie.

Wenn Sie es auf, das wie gesagt, es funktioniert nicht (die Anweisung erstellt nur das Verfahren, es ist es nicht ausführen). Sie haben proc1 rufen von irgendwo und setzen Sie den Haltepunkt auf der Linie, wo es genannt wird, wie folgt aus:

BEGIN
   proc1; -- place your breakpoint on this line
END;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top