G
Guest
Gast
Hi,
kennt sich jemand mit PL/SQL aus?
Ich habe folgende Datentypen
und möchte alle Artikel kriegen, die in einem gegebenen Warenkorb enthalten sind.
(ArtikelView liefert Objekte vom Typ ArtikelType aus der Artikel-Tabelle)
In der WHERE Clause wird ein Fehler gemeldet (Unbekannter Spaltenname)
Ich kann mir nicht erklären, was daran falsch sein kann.
Jemand eine Idee?
Eine alternative Lösung, wo ich eine Liste von ArtikelIds in WHERE Clause
angebe, wäre auch OK. Irgendwie wie folgt
Ich kann die ArtikelIds aus der warenkorbItemCollection auslesen, nur wie kriege ich
sie in IN (...) rein?
kennt sich jemand mit PL/SQL aus?
Ich habe folgende Datentypen
Code:
CREATE OR REPLACE TYPE ArtikelType AS OBJECT
(
ArtikelId NUMBER,
...
);
CREATE TYPE ArtikelCollectionType AS TABLE OF ArtikelType;
CREATE OR REPLACE TYPE WarenkorbItemType AS OBJECT
(
ArtikelId NUMBER,
...
);
CREATE TYPE WarenkorbItemCollectionType AS TABLE OF WarenkorbItemType;
(ArtikelView liefert Objekte vom Typ ArtikelType aus der Artikel-Tabelle)
Code:
PROCEDURE GetArtikel
(
warenkorbItemCollection IN WarenkorbItemCollectionType,
artikelCollection OUT ArtikelCollectionType
)
IS
CURSOR ArtikelCursor
IS
SELECT VALUE(Artikel)
FROM ArtikelView Artikel,
TABLE(warenkorbItemCollection) Warenkorb
WHERE Artikel.ArtikelId = Warenkorb.ArtikelId <-- Hier kommt der Fehler (Warenkorb.ArtikelId unbekannt)
;
BEGIN
OPEN ArtikelCursor;
FETCH ArtikelCursor BULK COLLECT INTO artikelCollection;
CLOSE ArtikelCursor;
END;
Ich kann mir nicht erklären, was daran falsch sein kann.
Jemand eine Idee?
Eine alternative Lösung, wo ich eine Liste von ArtikelIds in WHERE Clause
angebe, wäre auch OK. Irgendwie wie folgt
Code:
SELECT VALUE(Artikel)
FROM ArtikelView Artikel
WHERE Artikel.ArtikelId IN ( Liste der Ids aus warenkorbItemCollection, nur wie?)
sie in IN (...) rein?