La sentencia DELETE FROM elimina las filas de una tabla de una base de datos externa, basándose en una condición de búsqueda.
Todas las filas para las que la expresión de la cláusula WHERE toma el valor TRUE se suprimen de la tabla identificada por ReferenciaTabla.
Se examina cada fila a su vez y se establece una variable que apunta a la fila actual. Normalmente, la expresión de la cláusula WHERE utiliza esta variable para acceder a los valores de columna y hacer así que se retengan o supriman filas, según sus contenidos. Se hace referencia a la variable mediante NombreCorrelación o, si no hay ninguna cláusula AS, mediante NombreTabla.
Si no se especifica un nombre de esquema, se utiliza el esquema por omisión para el usuario de base de datos del intermediario.
Si no se especifica un nombre de origen de datos, se utiliza la base de datos que indica el atributo data source del nodo.
La expresión de la cláusula WHERE puede utilizar cualquier operador y función del intermediario en cualquier combinación. Puede hacer referencia a columnas de tabla, campos de mensajes y cualquier constante o variable declarada.
Sin embargo, tenga en cuenta que el intermediario trata la expresión de la cláusula WHERE examinando la expresión y decidiendo si la base de datos puede evaluar toda la expresión. Si puede, se suministra a la base de datos. Para que pueda evaluarla la base de datos, debe utilizar únicamente las funciones y operadores a los que dé soporte la base de datos.
No obstante, la cláusula WHERE hace referencia a campos de mensajes, nombres de correlación declarados en las cláusulas SELECT que las contienen, y a cualquier otra variable o constante declarada dentro del ámbito.
Es posible que se produzcan errores durante las operaciones de supresión. Por ejemplo, es posible que la base de datos no esté operativa. En estos casos, se genera una excepción (a menos que el nodo tenga su propiedad Generar excepción en error de base de datos establecida en FALSE). Estas excepciones establecen los valores SQL adecuados de código, estado, error nativo y texto de error, y pueden ser manejadas por los manejadores de errores (consulte la sentencia DECLARE HANDLER).
Para obtener más información sobre el manejo de errores de base de datos, consulte Captura del estado de la base de datos.
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
Esto suprime todas las filas de la tabla SHAREHOLDINGS en las que el valor en la columna ACCOUNTNO (en la tabla) es igual al que figura en el campo AccountNumber del mensaje. Quizá no se suprima ninguna fila de la tabla, o quizá se suprima una o más filas.
-- Declarar variables para que contengan los nombres de origen de datos, esquema -- y tabla, y establecer sus valores por omisión DECLARE Source CHARACTER 'Production'; DECLARE Schema CHARACTER 'db2admin'; DECLARE Table CHARACTER 'DynamicTable1'; -- Aquí va el código que calcula sus valores actuales -- Suprimir filas de la tabla DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';