Wie debugge ich eine Pipeline-Funktion in PL / SQL Developer?

8

Ich habe ein PL / SQL-Paket in der Oracle-Datenbank, das eine Pipeline-Funktion mit dem Namen FN_GET_USERINFO_ROWS wie folgt enthält:

%Vor%

Und ich führe folgendes Testskript aus, um die Pipeline-Funktion FN_GET_USERINFO_ROWS unter PL / zu testen. SQL Developer ( Datei- & gt; Neu- & gt; Testfenster )

%Vor%

Aber es zeigt folgenden Fehler:

  

ORA-06550: Zeile 28, Spalte 12: PLS-00653: Aggregat- / Tabellenfunktionen   sind im PL / SQL-Bereich nicht erlaubt

Wie kann ich eine Pipeline-Funktion debuggen, indem ich PL / SQL Developer ?     

mmuzahid 01.02.2016, 10:42
quelle

1 Antwort

9

Eine Möglichkeit besteht darin, einen Block mit FOR-SELECT-LOOP zu erstellen und einen Haltepunkt in die Funktion einzufügen oder den Inhalt für jede abgerufene Zeile zu protokollieren (hängt davon ab, was Sie unter Debuggen verstehen). So können Sie jede PIPE ROW -Ausführung trennen und deren Ergebnisse sehen.
Dann in PL / SQL Dev wählen Sie Datei- & gt; Öffnen- & gt; TestScript und führen Sie die Block von geöffnetem Fenster.

%Vor%

Ich rate Ihnen auch, Varianten zu debuggen, wenn NO_DATA_NEEDED geworfen wird. Fügen Sie dazu WHERE clause hinzu, um die Anzahl der Zeilen zu begrenzen.

    
diziaq 01.02.2016, 11:08
quelle

Tags und Links