Die Anweisung DELETE FROM löscht auf Grundlage einer Suchbedingung Zeilen aus einer Tabelle in einer externen Datenbank.
Alle Zeilen, für die der WHERE-Klauselausdruck den Wert TRUE ermittelt, werden aus der von TableReference angegebenen Tabelle gelöscht.
Nacheinander wird jede Zeile untersucht, und eine Variable wird so eingerichtet, dass sie auf die aktuelle Zeile verweist. Für gewöhnlich greift der WHERE-Klauselausdruck mit dieser Variablen auf Spaltenwerte zu, wodurch Zeilen entsprechend ihres Inhalts entweder beibehalten oder gelöscht werden. Auf die Variable wird entweder über Korrelationsname verwiesen bzw. bei Nichtvorhandensein einer AS-Klausel über Tabellenname.
Wird kein Schemaname angegeben, wird das Standardschema des Benutzers der Broker-Datenbank verwendet.
Wenn Sie keinen Datenquellnamen angeben, wird die Datenbank verwendet, auf die das Datenquellattribut des Knotens verweist.
Der WHERE-Klauselausdruck kann alle Operatoren und Funktionen des Brokers in beliebiger Kombination verwenden. Er kann auf Tabellenspalten, Nachrichtenfelder und auf jede andere deklarierte Variable oder Konstante verweisen.
Beachten Sie jedoch, dass der Broker den WHERE-Klauselausdruck untersucht und entscheidet, ob der gesamte Ausdruck von der Datenbank bewertet werden kann. Wenn dies der Fall ist, wird er an die Datenbank übergeben. Damit ein Ausdruck von der Datenbank ausgewertet wird, darf er nur die von der Datenbank unterstützten Funktionen und Operatoren enthalten.
Die WHERE-Klausel kann jedoch auf Nachrichtenfelder, auf von enthaltenen SELECT-Funktionen deklarierte Korrelationsnamen sowie auf jede andere deklarierte Variable oder Konstante verweisen, die im Gültigkeitsbereich liegt.
Bei den Löschvorgängen können Fehler auftreten, beispielsweise könnte die Datenbank nicht betriebsbereit sein. In diesen Fällen wird eine Ausnahme ausgelöst (ausgenommen, die Knoteneigenschaft Ausnahme für Datenbankfehler ausgeben wurde auf FALSE gesetzt). Diese Ausnahmen richten die entsprechenden Wert für den SQL-Code, den Status, den systemeigenen Fehler und den Fehlertext ein und können von Fehlerbehandlungsprogrammen bearbeitet werden (siehe Anweisung DECLARE HANDLER).
Weitere Informationen zur Behandlung von Datenbankfehlern finden Sie unter Datenbankstatus erfassen.
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
Damit werden alle Zeilen aus der Tabelle SHAREHOLDINGS gelöscht, in denen der Wert in der Spalte ACCOUNTNO (in der Tabelle) dem Wert im Nachrichtenfeld AccountNumber entspricht. Dabei können keine, eine oder mehrere Zeilen aus der Tabelle gelöscht werden.
-- Variablen deklarieren, die den Namen der Datenquelle, des Schemas und der Tabelle halten sollen und -- ihre Standardwerte einrichten DECLARE Source CHARACTER 'Produktion'; DECLARE Schema CHARACTER 'db2admin'; DECLARE Table CHARACTER 'DynamischeTabelle1'; -- Hier steht der Code, der ihren tatsächlicher Wert berechnet -- Zeilen aus Tabelle löschen DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';