Oracle update-Anweisung mehrere Tabellen
Ich bin mit Oracle (Noch ein wenig neu für ihn) und jedes mal, wenn ich führen Sie die update-Anweisung unten bekomme ich die folgende Fehlermeldung.
SQL Error: ORA-00904: "CH"."CONTRACT_ID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Hier ist die Abfrage:
UPDATE wr00262_catalogue_201310 ct SET
ct.PORTFOLIO_ID = (SELECT ch.PORTFOLIO_ID
from WR00262_CONTRACT_HEADER ch
WHERE ch.PORTFOLIO_ID = ct.PORTFOLIO_ID)
WHERE ct.NPC in (SELECT ctl.NPC
FROM wr00262_contract_line ctl
WHERE ctl.CONTRACT_ID = ch.CONTRACT_ID);
Kann ich denke ich brauche eine Verknüpfung aber nicht ganz sicher, wo oder wie. Die contract_header Tabelle hat eine Spalte " CONTRACT_ID.
- Was wollen Sie erreichen? Sie schauen, wie Sie
PORTFOLIO_ID
auf den Wert, den es bereits hat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein scoping-Problem. Die Spalten in eine sub-query sind nicht sichtbar für andere sub-Abfrage. Also versuchen Sie so etwas wie dieses:
SET =
- Klausel. So ist es kein bug, Egor hat intoduced. Müssen Sie eine WHERE-Klausel definieren, die für das sub-query gibt nur eine PORTFOLIO_ID.