falsche Anzahl oder Typen der Argumente im Aufruf an meine Vorgehensweise
Hallo, ich schrieb diesen code eine Prozedur erstellen, um einen booleschen Wert zurückgeben, basierend auf der if-Bedingungen, aber wenn ich es ausführen bekam ich diese Fehlermeldung:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'DDPAY_SP'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
hier ist meine Vorgehensweise
create or replace procedure DDPAY_SP (
donor_id dd_donor.iddonor%type,
pldgstatus out dd_pledge.idstatus%type,
monthplan out dd_pledge.paymonths%type,
ret out boolean)
IS
begin
select idstatus, paymonths into
pldgstatus, monthplan from dd_pledge
where iddonor = donor_id ;
if (pldgstatus = 10 AND monthplan >0)
then ret:= true;
else
ret:= false;
end if;
end;
- und dies, wie ich es ausführen
EXECUTE DDPAY_SP (308);
Ich nicht viel reden, ich hoffe, es ist klar genug für Sie
Lese ich online empfiehlt Sie mir, bitte, die Benennung auch die Daten geben die habe ich aber nichts ändern
irgendwelche Ideen
Die Prozedur erfordert 1 Eingabewert und drei output-Variablen. Sie werden nur geliefert, den input Wert.
aber warum sollte ich die Ausgänge...und BTW die Frage ist bat nur für einen Boolean (TRUE/FALSE) die beiden Variablen, aber ich erklärte Ihnen coz vor, dass ich Fehler, die ich denke, das war aufgrund Ihrer Abwesenheit, so dass ich gerade erklärt. zum ausführen der SQL-Anweisung, aber ich muss nicht ausgegeben werden
also, wie kann ich schreiben Sie mir Ausführung der Anweisung
aber warum sollte ich die Ausgänge...und BTW die Frage ist bat nur für einen Boolean (TRUE/FALSE) die beiden Variablen, aber ich erklärte Ihnen coz vor, dass ich Fehler, die ich denke, das war aufgrund Ihrer Abwesenheit, so dass ich gerade erklärt. zum ausführen der SQL-Anweisung, aber ich muss nicht ausgegeben werden
also, wie kann ich schreiben Sie mir Ausführung der Anweisung
InformationsquelleAutor user2396035 | 2013-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht brauchen, die zweiten und Dritten Argumente, die Sie erklären können diejenigen, die als Variablen in der Prozedur statt Argumente, wie folgt:
Habe ich ein Beispiel eines EXCEPTION-handler am Ende der DD_PAY. Es ist immer eine gute Idee, um wenigstens diese minimal-handler, so dass im Falle eine Ausnahme tritt auf, erhalten Sie Aufschluss darüber, wo das problem liegt.
Da dieses Verfahren gibt einen BOOLESCHEN Wert zurück, und Boolesche Werte nicht (zum besten meines Wissens) verwendet werden, die von SQL*Plus, müssen Sie es aufrufen, aus einer PL/SQL-block, wie folgt:
Probieren.
EDIT: umgeschrieben Verfahren auf der Grundlage weiterer Informationen aus späteren Kommentaren.
Teilen und genießen.
Ich habe testen Sie es doch einmal mit verschiedenen id_donnor Wert und ich gefunden, wenn dieser Wert hat nur eine Zeile in der dd_pledge es gibt mir 'anonymer block abgeschlossen" nur mit weder wahr noch falsch.....aber wenn der Wert mehr als eine Zeile, dann wird der Fehler auftreten????
tut mir Leid mein schlechtes DBMS output-Fenster war nicht mit meinem Schema so ich konnte nicht sehen, die Leistung.....aber wenn die iddonnor hat mehr als eine Zeile ich bin noch immer die "genauen Holen gibt mehr als die angeforderte Anzahl von Zeilen"
irgendeine Idee, warum das so ist?
Das problem ist, dass mehr als eine Zeile vorhanden, in DD_PLEDGE für einen bestimmten IDDONOR, konnte ich so nicht gekannt haben. Kein problem - ich habe es umgeschrieben, die Verfahren, um mit dieser situation umzugehen. Teilen und genießen.
InformationsquelleAutor Bob Jarvis