L'istruzione DELETE FROM elimina le righe da una tabella in un database esterno, in base ad una condizione di ricerca.
Tutte le righe per cui l'espressione della clausola WHERE è TRUE vengono eliminate dalla tabella identificata da TableReference.
Ciascuna riga viene esaminata a turno e viene impostata una variabile per puntare alla riga corrente. Generalmente, l'espressione della clausola WHERE utilizza tale variabile per accedere ai valori della colonna e così determina le righe da conservare o eliminare in base al relativo contenuto. La variabile è indicata da CorrelationName oppure, in assenza di una clausola AS, da TableName.
Se non viene specificato il nome dello schema, viene utilizzato lo schema predefinito per l'utente del database del broker.
Se non viene specificato il nome dell'origine dati, viene utilizzato il database indicato dall'attributo data source del nodo.
L'espressione della clausola WHERE può utilizzare tutte le funzioni e tutti gli operatori del broker in qualsiasi combinazione. Può fare riferimento a colonne di tabella, campi di messaggi e a costanti o variabili dichiarate.
Tuttavia, tenere presente che il broker considera l'espressione della clausola WHERE esaminando l'espressione e decidendo se l'intera espressione può essere valutata dal database. Se l'operazione è possibile, essa viene fornita al database. Per essere valutata dal database, devono essere utilizzati solo gli operatori e le funzioni supportati dal database.
La clausola WHERE, tuttavia, può fare riferimento a campi di messaggi, a nomi di correlazione dichiarati dalle istruzioni SELECT e ad altre costanti o variabili dichiarate all'interno dell'ambito.
E' possibile che durante le operazioni di eliminazione si verifichino alcuni errori. Ad esempio, il database potrebbe non essere operativo. In tali casi, viene generata un'eccezione (a meno che la proprietà Genera eccezione in caso di errore database del nodo non sia impostata su FALSE). Tali eccezioni impostano valori di testo dell'errore, dell'errore nativo, dello stato e del codice SQL e possono essere gestite mediante i programmi di gestione degli errori (consultare l'istruzione DECLARE HANDLER).
Per ulteriori informazioni relative alla gestione degli errori del database, consultare Cattura dello stato del database.
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
Questo comando rimuove tutte le righe dalla tabella SHAREHOLDINGS in cui il valore nella colonna ACCOUNTNO (nella tabella) è uguale a quello nel campo AccountNumber nel messaggio. E' possibile che vengano eliminate zero, una o più righe dalla tabella.
-- Declare variables to hold the data source, schema, and table names and -- set their default values DECLARE Source CHARACTER 'Production'; DECLARE Schema CHARACTER 'db2admin'; DECLARE Table CHARACTER 'DynamicTable1'; -- Code which calculates their actual values comes here -- Delete rows from the table DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';