Data Mover usa tablas provisionales de destino cuando lleva a cabo copias parciales o completas de tablas donde la tabla de destino ya existe. El valor del elemento staging_to_target especifica cómo se deben copiar los datos de una tabla provisional de destino a una tabla de destino, en sustitución del método que Data Mover suele usar para copiar datos de una tabla provisional a una de destino. El método de Data Mover usa MERGE o DELETE junto con INSERT/SELECT, dependiendo de factores tales como las columnas de claves, la versión de la base de datos, etc.
Utilice el elemento staging_to_target si no tiene el permiso UPDATE requerido por la sentencia MERGE. Sin embargo, utilice el parámetro con cuidado porque Data Mover elige automáticamente el modo más eficiente de copiar datos.
El elemento staging_to_target es opcional y solo se puede especificar en el archivo XML, no como un parámetro en la interfaz de línea de comandos.
El elemento staging_to_target está en el elemento key_columns del archivo XML. La siguiente tabla enumera los valores válidos del elemento staging_to_target.
Valor | Descripción |
---|---|
NOT_SPECIFIED | (Predeterminado) Se recomienda porque especifica que Data Mover elige la manera más eficiente de copiar datos de la tabla provisional de destino en la tabla de destino. |
MERGE | Especifica el uso de la sentencia MERGE para copiar datos. Data Mover comprueba si la sentencia MERGE se puede utilizar para copiar datos. Si no se puede utilizar la sentencia MERGE, se producirá un error. Tenga en cuenta que la sentencia MERGE no se puede utilizar para copiar tablas de multiconjunto. |
DELETE_INSERT | Especifica las filas de la tabla de destino que se eliminan con la sentencia DELETE y que luego se copian de la tabla de transferencia provisional a la tabla de destino con la sentencia INSERT/SELECT. Las filas que se eliminarán dependen del trabajo. Con una copia de tabla parcial, solo se eliminan las filas que coinciden con la consulta SQL. Con una copia de tabla completa, se eliminan todas las filas. |
INSERT_ONLY | Especifica que no se eliminen filas de la tabla de destino. En su lugar, la sentencia INSERT/SELECT copia las filas de la tabla de transferencia provisional en la tabla de destino. |
DELETE_DISTINCT_INSERT | Especifica las filas de la tabla de destino que se eliminan con la sentencia DELETE DISTINCT SELECT y que luego se copian de la tabla de transferencia provisional a la tabla de destino con la sentencia INSERT/SELECT. Este método solo se utiliza con copia parcial, y solo cuando se especifica expresamente. Este método mejora el rendimiento de eliminación cuando las columnas de claves no son claves únicas |
Debido a que la funcionalidad del elemento staging_to_target es válida para tablas individuales, se debe especificar la tabla a la que se aplicará la característica staging_to_target, como en el siguiente ejemplo.
<database selection="unselected"> <name>srcDatabase</name> <table selection="included"> <name>srcTable</name> <sql_where_clause> <![CDATA[WHERE colA > 100]]> </sql_where_clause> <key_columns> <key_column>colA</key_column> </key_columns> <staging_to_target>insert_only</staging_to_target> </table> </database>