Wie das UPDATE einer Spalte mit einer anderen Spalte in einer anderen Tabelle? SQL-Fehler: ORA-00933: SQL-Befehl nicht korrekt beendet

Ich habe alles versucht, ich kann mir denken, konnte es aber nicht lösen dieser SQL-Fehler:

SQL-Fehler: ORA-00933: SQL-Befehl nicht korrekt beendet

Dies ist Oracle SQL.

    UPDATE SALES_DATA_FAMILY_2007 A 
    SET A.POG_ID=B.POG_ID 
    FROM POG_HIERARCHY B 
    WHERE A.FAMILY_ID=B.FAMILY ;

Einer alternative, die ich versucht habe ist, wie unten beschrieben. Leider gibt es eine andere Fehlermeldung:
ORA-01427: single-row subquery mehr als eine Zeile

    UPDATE SALES_DATA_FAMILY_2007 
    SET POG_ID= (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY 
    WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID) 
    WHERE EXISTS (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY 
    WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID) 
    ;

Bitte um Hilfe!!

  • Die "ORA-01427: single-row subquery returns more than one row" - Fehler-Meldung besagt, dass es mehrere pog_hierarchy Datensätze mit der gleichen family_id. Sie müssen sagen, von Oracle die pog_hierarchy Datensatz ist derjenige, dessen pog_id Sie wollen.
InformationsquelleAutor ZM Wang | 2012-01-29
Schreibe einen Kommentar