Ausgabe von gespeicherten Oracle-Prozedur
Habe ich die folgende gespeicherte Prozedur:
create or replace PROCEDURE A2CountSkus
(v_count out Number )
AS
BEGIN
SELECT count(*)
INTO v_count
FROM a2sku;
EXCEPTION
When Others THEN
RAISE;
END A2CountSkus;
Wenn ich dieses Skript ausführen.
SET SERVEROUTPUT ON
BEGIN
DBMS_OUTPUT.PUT_LINE('SKU COUNT ' || A2CountSkus);
END;
/
Statt der Ausgabe gedruckt wird, gibt es einen Fehler.
Was Fehler gibt es Sie?
Error starting at line 2 in command: BEGIN DBMS_OUTPUT.PUT_LINE('SKU COUNT' || to_char(A2COUNTSKUS())); END; Fehlerbericht: ORA-06550: Zeile 2, Spalte 46: PLS-00306: falsche Anzahl oder Typen der Argumente in Aufruf von "A2COUNTSKUS' ORA-06550: Zeile 2, Spalte 1: PL/SQL: Statement ignored 06550. 00000 - "Zeile %s, Spalte %s:\n%s" *Ursache: Meist eine PL/SQL-Kompilierung Fehler. *Aktion:
"falsche Anzahl oder Typen der Argumente im Aufruf" nicht, die Ihnen sagen, was falsch ist?
v_count ist output-parameter. Was habe ich zu übergeben, so dass die erforderliche Eingabe ausgedruckt, wenn ich das 2. script. Danke.
Es ist ein parameter. Sie benötigen ein parameter übergeben werden um den Wert zu speichern in.
Error starting at line 2 in command: BEGIN DBMS_OUTPUT.PUT_LINE('SKU COUNT' || to_char(A2COUNTSKUS())); END; Fehlerbericht: ORA-06550: Zeile 2, Spalte 46: PLS-00306: falsche Anzahl oder Typen der Argumente in Aufruf von "A2COUNTSKUS' ORA-06550: Zeile 2, Spalte 1: PL/SQL: Statement ignored 06550. 00000 - "Zeile %s, Spalte %s:\n%s" *Ursache: Meist eine PL/SQL-Kompilierung Fehler. *Aktion:
"falsche Anzahl oder Typen der Argumente im Aufruf" nicht, die Ihnen sagen, was falsch ist?
v_count ist output-parameter. Was habe ich zu übergeben, so dass die erforderliche Eingabe ausgedruckt, wenn ich das 2. script. Danke.
Es ist ein parameter. Sie benötigen ein parameter übergeben werden um den Wert zu speichern in.
InformationsquelleAutor wali | 2012-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, in der Regel, wenn Sie eine benannte PL/SQL-block, dessen einziger Zweck es ist, um einen Wert zurückzugeben, würden Sie deklarieren eine Funktion eher als ein Verfahren. Wenn Sie erklärt hatte, dass
A2CountSkus
als eine Funktion, dass wieder eine Zahl, die syntax, die Sie verwenden möchten funktionieren würde.Sekunde, die Sie nicht wollen, dass die Ausnahme-Klausel-es tut nichts sinnvolles. Es sollte beseitigt werden.
Dritten, wenn Sie wollen, dass der block eine Prozedur, die Anrufer müssen, deklarieren Sie eine lokale variable, die übergeben werden kann, in dem Verfahren und drucken Sie dann den Wert in die lokale variable.
Wenn Sie möchten, deklarieren Sie eine Funktion
Wenn Sie sicher sind, dass Sie möchten, deklarieren Sie eine Prozedur, der Anrufer müsste etwas wie
InformationsquelleAutor Justin Cave