2017-05-09 1 views
0

Dies ist meine Funktion:Testen einer Funktion in PL/SQL Developer

FUNCTION GET(V_IN IN NUMBER) RETURN VARCHAR2 AS 
    V_OUT VARCHAR2(1000); 
BEGIN 
    function body 
END; 

Wenn ich rechts die Funktion klicken und auf Test klicken, ich folgendes bekommen:

begin 
    -- Call the function 
    :result := pkg.get(V_IN => :V_IN); 
end; 

Wie kann ich Ersetzen Sie einen Wert für diese Variable V_IN? Ich brauche es für eine Reihe zu testen, sagen 940.

Wenn ich den Code versuchen:

declare 
    r varchar2(2000); 
begin 
    -- Call the function 
    r := pkg.get(940); 
end; 

Ich erhalte eine Fehlermeldung:

ORA-01036: illegal variable name/number 

Can you suggest various ways of calling this function?

PS: -Tool verwendet : PL/SQL-Entwickler Allround-Automationen. Version 8.0.1.1502

Oracle Database 11g Enterprise Edition

+0

Welches Tool Du: PL/SQL Developer von Allround Automations oder SQL Developer von Oracle? –

+0

PL/SQL Entwickler von Allround Automations. – Natty

Antwort

1

Sobald Sie auf Ihre Funktion geklickt und im Kontextmenü auf Test geklickt haben, wird ein Testfenster mit dem Code angezeigt, den Sie angezeigt haben. In diesem Fenster gibt es zwei Bereiche - der obere Bereich zeigt den Code, den PL/SQL Developer zum Aufruf der Funktion generiert hat, und der untere Bereich enthält eine Liste der Parameter für Ihre Funktion. Im unteren Bereich des Testfensters befindet sich eine Liste der Parameter für die Funktion mit drei Spalten: Variable, Typ und Wert. Geben Sie den gewünschten Wert in die Spalte Wert mit dem Namen des Parameters ein und klicken Sie dann auf die Schaltfläche Debugger starten (oben links im Testfenster unter dem Namen des Testskripts). Klicken Sie dann auf die Schaltfläche Ausführen (sofort auf der rechten Seite der Schaltfläche Debugger starten).

Viel Glück.

+0

Das ist ** genau **, was ich von einem Noobie-Schuh erwartet habe. Vielen Dank, aber ich habe es mit etwas Selbstforschung herausgefunden. – Natty

1

"How do I substitute a value for this variable V_IN? I "

Wenn Sie den Test in PLSQL Entwickler führen Sie den unteren Bereich des Testfensters ist eine Eigenschaft Liste für die alle Substitutionsvariablen. Sie definieren den Datentyp und die Eingabewerte (falls zutreffend). Ausgabewerte sind in diesem Fenster verfügbar, nachdem der Test ausgeführt wurde.

"ORA-01036: illegal variable name/number"

Nicht sicher, was das verursacht. Es ist wahrscheinlich kein PLSQL Developer, sondern ein Fehler in Ihrem Funktionscode (den Sie nicht gepostet haben).

+0

Ich verstehe dich nicht. – Natty

+0

Was bekommst du nicht? – APC

+0

Ich kann jetzt verstehen, was Sie versucht haben zu sagen. Ich bin neu in diesem Tool und es dauerte einige Zeit, um es herauszufinden. VIELEN DANK! – Natty

-1

Ich nehme an, Sie sind immer noch in pl/sql "Test-Fenster", wenn Sie den ursprünglichen Test-Code nach Ihren Wünschen geändert haben. Pl/sql ist manchmal fehlerhaft. Öffnen Sie ein neues "SQL-Fenster" und versuchen Sie, dort mit dbms_output.put_line() zu laufen, um das Ergebnis zu sehen.

+0

PL/SQL ist manchmal fehlerhaft? Warum würde ein SQL-Fenster besser funktionieren als ein Testfenster? –

+0

Erstens behauptete ich nicht, dass SQL-Fenster "besser funktioniert" dann Testfenster. Er verwendet eine ältere Version des plsql-Entwicklers. Durch das Einleiten des Testfensters legen Sie ein spezifisches Testfenster mit einem bestimmten Hintergrund fest. Und wenn man in diesem Fenster Änderungen vornimmt, kann plsql "verwirrt" werden. Ab Version 12+ funktioniert es auch dann, wenn Sie es ändern. – Ychdziu

+0

PL/SQL ist nicht "fehlerhaft" und wird nicht "verwirrt". Vielleicht meintest du "PL/SQL Developer". Und ich kann nicht sehen, was der Fensterhintergrund mit der Handhabung der Variablenbindung zu tun hat. –

0

konnte ich die Funktion auszuführen, wie folgt:

declare 
    v varchar2(1000); 
begin 
    select pkg.get(940) into v from dual; 
    dbms_output.put_line(v); 
end; 

Auch, wie pro APC Kommentar gibt eine Eigenschaftsliste ist (das kleine Fenster unterhalb des PL/SQL-Arbeitsblatt erscheinen, mit Variable, Typ und Wert Felder). Sie müssen den Wert, den Sie übergeben möchten, in das Wertfeld eingeben und auf Ausführen klicken (Kürzel-F8). Die Ausgabe wird im selben Eigenschaftslistenfenster angezeigt und gelb hervorgehoben.Klicken Sie auf folgenden Link um den Screenshot zu entnehmen:

Function Call with single parameter

Verwandte Themen