Unten versuche ich meine Sammlung zu gruppieren und macht einige Aufrufe an andere Funktionen/gespeicherte Prozeduren mit den Daten. Aus irgendeinem Grund kann ich nicht herausfinden, warum der Fehler PLS-00382 Ausdruck des falschen Typs ist. Ich habe den Anruf nicht eingeschlossen, aber ich bekomme das gleiche Problem, wenn ich versuche, Recipayment zu Oupayment zuzuweisen. Jede Hilfe wäre willkommen.PLS-00382 mit Oracle Objects und For-Schleife
CREATE OR REPLACE TYPE Over_Under_Payment AS OBJECT
(
Demoid NUMBER,
Paymentamount NUMBER,
Month DATE
)
CREATE OR REPLACE TYPE OVER_UNDER_PAYMENT_LIST as table of OVER_UNDER_PAYMENT
PROCEDURE Pass_Payments(Listofpayments IN Over_Under_Payment_List) IS
Oupayment Over_Under_Payment;
BEGIN
FOR Recipient IN (SELECT Demoid
FROM TABLE(CAST(Listofpayments AS Over_Under_Payment_List))
GROUP BY Demoid) LOOP
FOR Recippayment IN (SELECT *
FROM TABLE(CAST(Listofpayments AS Over_Under_Payment_List))
WHERE Demoid = Recipient.Demoid) LOOP
Oupayment := Recippayment;
END LOOP;
END LOOP;
END;
Vielen Dank für Ihre Hilfe. Ich konnte dazu nichts finden. Das eine lästige Ding ist, dass Sie jedes Attribut/Eigentum auflisten müssen, das Sie haben und nicht einfach sagen * sagen können. Sie wissen sowieso um dies, da ich 25 Eigenschaften für diesen Typ habe und ich werde wahrscheinlich diese Schleife viel verwenden? – Dante
@Dante: Tut mir leid, ich weiß nichts um diese Sache. Oracle-Sammlungen können frustrierend sein, denn ich bin mir sicher, dass Sie das gerade herausfinden! –