L'istruzione INSERT inserisce una riga in una tabella del database.
Una singola riga viene inserita nella tabella identificata da TableReference. L'elenco ColumnName identifica quelle colonne nella tabella di destinazione a cui devono essere assegnati valori specifici. Tali valori sono determinati dalle espressioni all'interno della clausola VALUES (la prima espressione assegna il valore della prima colonna indicata e così via). Il numero di espressioni nella clausola VALUES deve essere uguale al numero di colonne indicate. A tutte le colonne presenti nella tabella ma non indicate nell'elenco vengono assegnati i relativi valore predefiniti.
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.
E' possibile che durante le operazioni di inserimento si verifichino degli errori. Ad esempio, il database potrebbe non essere operativo o per la tabella potrebbero essere definiti dei vincoli che verrebbero violati dalla nuova riga. 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.
Negli esempi riportati di seguito si suppone che la proprietà dataSource del nodo Database sia stata configurata e che il database identificato contenga una tabella denominata TABLE1 con le colonne A, B e C.
<A> <B>1</B> <C>2</C> <D>3</D> </A>
INSERT INTO Database.TABLE1(A, B, C) VALUES (Body.A.B, Body.A.C, Body.A.D);
-- 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 -- Insert the data into the tabl INSERT INTO Database.{Source}.{Schema}.{Table} (Name, Value) values ('Joe', 12.34);