Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Pragma DEBUG VALUE

Das Pragma DEBUG VALUE stellt zusätzliche Informationen für folgende SQL-Anweisungen zur Verfügung:

  • SET in Routinen (Prozeduren und User Defined Functions (UDF))

  • RETURN in User Defined Functions (UDF)

Diese Informationen können über den View SYS_ROUTINE_ERRORS des SYS_INFO_SCHEMA gelesen werden, siehe "SYS_ROUTINE_ERRORS".

Das Pragma DEBUG VALUE ist derzeit nur vor diesen SQL-Anweisungen wirksam.



DEBUG VALUE [LEVEL vorzeichenlose_ganzzahl ]



vorzeichenlose_ganzzahl

Bei vorzeichenlose_ganzzahl > 0 werden für die o.g. Anweisungen zusätzliche Informationen dann gesammelt, wenn das Pragma DEBUG ROUTINE vor der SQL-Anweisung CALL bzw. vor einer DML-Anweisung (für darin enthaltene Routinen) steht. Zusätzlich muss vorzeichenlose_ganzzahl bei DEBUG ROUTINE größer oder gleich vorzeichenlose_ganzzahl bei DEBUG VALUE sein.

Folgende Informationen werden dann gesammelt:

      • bei SET der zugewiesene Wert und der Name des Zielfeldes (Parameter oder lokale Variable)

      • bei RETURN der zurückgegebene Wert

Bei Zeichenketten werden lange Werte ggf. am Ende abgeschnitten.

vorzeichenlose_ganzzahl = 1 ist der Standardwert, wenn die Klausel LEVEL nicht angegeben wird.

Bei vorzeichenlose_ganzzahl = 0 hat das Pragma keine Wirkung.

Folgende Vorgehensweise bietet sich an:

Das Pragma ist zunächst zu Testzwecken mit einem Wert > 0 in einer Anwendung aktiv und wird dann später (ohne Änderung der Textlänge) durch den Wert 0 deaktiviert.


Das Pragma DEBUG VALUE kann nach Ende einer Test- bzw. Debugging-Phase im Text einer Routine verbleiben, solange die aufrufenden SQL-Anweisungen nicht das entsprechende Pragma DEBUG ROUTINE verwenden.

Beispiel

Den SET-Anweisungen einer Prozedur kann das Pragma DEBUG VALUE mit unterschiedlichen Werten für vorzeichenlose_ganzzahl vorangestellt werden. Durch Aufruf der Routine mit dem Pragma DEBUG ROUTINE und unterschiedlichen Werten für vorzeichenlose_ganzzahl werden Informationen in unterschiedlichem Umfang gesammelt.

CREATE PROCEDURE P (OUT par1 INTEGER,OUT par2 INTEGER)
       MODIFIES SQL DATA
       BEGIN
       --%PRAGMA DEBUG VALUE LEVEL 3
          SET par1 = 42;
       --%PRAGMA DEBUG VALUE LEVEL 10
          SET par2 = 43;
       END

Bei folgendem Prozeduraufruf wird nur die erste Zuweisung (par1=42) aufgezeichnet:

-- %PRAGMA DEBUG ROUTINE LEVEL 5
CALL P(mypar1, mypar2)

Bei folgendem Prozeduraufruf werden beide Zuweisungen aufgezeichnet:

-- %PRAGMA DEBUG ROUTINE LEVEL 20
CALL P(mypar1, mypar2)

Die Pragmas DEBUG VALUE können unverändert im Text der Routine verbleiben. Sie kommen erst bei entsprechender vorzeichenlose_ganzzahl im Pragma DEBUG ROUTINE zur Wirkung.