La source de données Oracle vous permet de lire et d'écrire des données depuis et vers Oracle. Vous pouvez configurer des tâches de synchronisation en mode assistant ou script. Cette rubrique décrit les capacités de synchronisation Oracle prises en charge par DataWorks.
Versions prises en charge
Lectures et écritures par lots
|
Version |
Lecture par lot (Oracle Reader) |
Écriture par lot (Oracle Writer) |
|
Oracle 11.2 ou 11gR2 |
Prise en charge |
Prise en charge |
|
Oracle 12.1 ou 12cR1 |
Prise en charge |
Prise en charge |
|
Oracle 12.2 ou 12cR2 |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
|
Oracle 18.3 |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
|
Oracle 19.x |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
|
Oracle 21.1 |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
Prise en charge (les fonctionnalités des nouvelles versions ne sont pas prises en charge) |
Oracle Writer utilise le pilote ojdbc6-12.1.1.jar.
Lectures en temps réel
-
Prises en charge :
11g R2 et versions ultérieures,12c non cdb,18c non cdb,19c non cdbou bases de données19c cdb. -
Non prises en charge :
Bases de données
12c cbdet18c cbd. Lorsqu'Oracle est la source d'une tâche en temps réel pour l'intégralité de la base de données, activez la journalisation des archives. Pour plus de détails, consultez la section Préparation de l'environnement Oracle.
Une base de données conteneur (CDB) est une fonctionnalité introduite avec Oracle 12c et les versions ultérieures ; elle contient plusieurs bases de données enfichables (PDB).
Limites
Les paramètres NLS_CHARACTERSET et NLS_NCHAR_CHARACTERSET de l'instance Oracle doivent être définis sur AL32UTF8, AL16UTF16, ZHS16GBK ou UTF8.
Une instance Oracle prend en charge au maximum 500 Go de données incrémentielles synchronisées en temps réel par jour.
DataWorks effectue des lectures en temps réel uniquement depuis un standby physique Oracle. Il lit les journaux archivés, ce qui entraîne une latence supérieure à celle observée lors de la lecture depuis le primaire, cette latence dépendant de la vitesse de génération des journaux d'archive.
La synchronisation en temps réel ne prend pas en charge les vues ; la synchronisation par lots prend en charge la lecture des vues.
Les lectures Oracle en temps réel de DataWorks utilisent Oracle LogMiner. Activez la journalisation supplémentaire et la journalisation des archives sur le serveur primaire, que vous lisiez depuis le primaire ou le standby.
Les tables organisées par index ne sont pas prises en charge.
Les tables dont toutes les colonnes sont de type LOB (BLOB, CLOB ou NCLOB) ne sont pas prises en charge.
Les caractères chinois dans les noms de tables ou de colonnes Oracle ne sont pas pris en charge.
Les noms de tables Oracle dépassant 30 octets ne sont pas pris en charge.
Types de champs pris en charge
|
Type de champ |
Lecture par lot (Oracle Reader) |
Écriture par lot (Oracle Writer) |
Lectures en temps réel |
|
NUMBER |
Prise en charge |
Prise en charge |
Prise en charge |
|
BINARY FLOAT |
Prise en charge |
Prise en charge |
Prise en charge |
|
BINARY DOUBLE |
Prise en charge |
Prise en charge |
Prise en charge |
|
CHAR |
Prise en charge |
Prise en charge |
Prise en charge |
|
NCHAR |
Prise en charge |
Prise en charge |
Prise en charge |
|
VARCHAR2 |
Prise en charge |
Prise en charge |
Prise en charge |
|
NVARCHAR2 |
Prise en charge |
Prise en charge |
Prise en charge |
|
DATE |
Prise en charge |
Prise en charge |
Prise en charge |
|
TIMESTAMP |
Prise en charge |
Prise en charge |
Prise en charge |
|
TIMESTAMP WITH TIME ZONE |
Prise en charge |
Prise en charge |
Non pris en charge |
|
TIMESTAMP WITH LOCAL TIME ZONE |
Prise en charge |
Prise en charge |
Non pris en charge |
|
CLOB |
Prise en charge |
Prise en charge |
Prise en charge |
|
BLOB |
Prise en charge |
Prise en charge |
Prise en charge |
|
RAW |
Prise en charge |
Prise en charge |
Prise en charge |
|
ROWID |
Non pris en charge |
Non pris en charge |
Prise en charge |
|
UROWID |
Non pris en charge |
Non pris en charge |
Prise en charge |
|
FLOAT |
Prise en charge |
Prise en charge |
Prise en charge |
|
INTERVAL DAY TO SECOND |
Non pris en charge |
Non pris en charge |
Prise en charge |
|
INTERVAL YEAR TO MONTH |
Non pris en charge |
Non pris en charge |
Prise en charge |
|
BFILE |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
LONG |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
LONG RAW |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
NCLOB |
Prise en charge |
Prise en charge |
Non pris en charge |
|
STRUCT |
Prise en charge |
Prise en charge |
Non pris en charge |
|
User-Defined Types |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
AnyType |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
AnyData |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
AnyDataSet |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
XmlType |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
Spatial Types |
Non pris en charge |
Non pris en charge |
Non pris en charge |
|
Media Types |
Non pris en charge |
Non pris en charge |
Non pris en charge |
Le tableau suivant répertorie les mappages de types Oracle pour Oracle Reader.
|
Catégorie de type |
Type de données Oracle |
|
Entier |
NUMBER, RAWID, INTEGER, INT et SMALLINT |
|
Virgule flottante |
NUMERIC, DECIMAL, FLOAT, DOUBLE PRECISIOON et REAL |
|
Chaîne |
LONG, CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2, CLOB, NCLOB, CHARACTER, CHARACTER VARYING, CHAR VARYING, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING et NCHAR VARYING |
|
Date et heure |
TIMESTAMP et DATE |
|
Booléen |
BIT et BOOL |
|
Binaire |
BLOB, BFILE, RAW et LONG RAW |
Avant la synchronisation : préparation de l'environnement Oracle
Avant de synchroniser des données Oracle dans DataWorks, préparez l'environnement Oracle afin que les tâches puissent être configurées et exécutées correctement.
Vérification de la version de la base de données Oracle
Les versions Oracle prises en charge varient selon le scénario de synchronisation. Vérifiez que votre version est compatible.
-
Utilisez l'une des instructions suivantes pour vérifier la version :
-
Instruction 1 :
select * from v$version; -
Instruction 2 :
select version from v$instance;
-
-
Si la version Oracle est
12cou18c, utilisez cette instruction pour vérifier s'il s'agit d'une base de donnéescdb. La synchronisation en temps réel de Data Integration ne prend actuellement pas en charge les bases de données Oraclecdbdes versions12cet18c.select name,cdb,open_mode,con_id from v$database;
Création d'un compte et attribution des autorisations
Planifiez un compte de connexion à la base de données pour les opérations ultérieures. Ce compte nécessite les autorisations Oracle appropriées.
Créez un compte. Pour la procédure, consultez la section Création d'un compte Oracle.
-
Accordez les autorisations.
Utilisez les commandes suivantes pour accorder les autorisations. Remplacez
'sync_user'par le compte créé précédemment.grant create session to 'sync_user'; //Allow the synchronization account to log on to the database. grant connect to 'sync_user'; //Allow the synchronization account to connect to the database. grant select on nls_database_parameters to 'sync_user'; //Allow the synchronization account to query the nls_database_parameters system settings. grant select on all_users to 'sync_user'; //Allow the synchronization account to query all database users. grant select on all_objects to 'sync_user'; //Allow the synchronization account to query all database objects. grant select on DBA_MVIEWS to 'sync_user'; //Allow the synchronization account to view materialized views. grant select on DBA_MVIEW_LOGS to 'sync_user'; //Allow the synchronization account to view materialized view logs. grant select on DBA_CONSTRAINTS to 'sync_user'; //Allow the synchronization account to view constraints on all database tables. grant select on DBA_CONS_COLUMNS to 'sync_user'; //Allow the synchronization account to view columns in specified constraints on all database tables. grant select on all_tab_cols to 'sync_user'; //Allow the synchronization account to view column information for tables, views, and clusters. grant select on sys.obj$ to 'sync_user'; //Allow the synchronization account to view objects. sys.obj$ is the Oracle dictionary base table containing all objects. grant select on SYS.COL$ to 'sync_user'; //Allow the synchronization account to view column definitions. SYS.COL$ stores table column definitions. grant select on sys.USER$ to 'sync_user'; //Allow the synchronization account to view system tables. sys.USER$ is the default service for user sessions. grant select on sys.cdef$ to 'sync_user'; //Allow the synchronization account to view system tables. grant select on sys.con$ to 'sync_user'; //Allow the synchronization account to view constraints. sys.con$ records Oracle constraint information. grant select on all_indexes to 'sync_user'; //Allow the synchronization account to view all indexes. grant select on v_$database to 'sync_user'; //Allow the synchronization account to view v_$database. grant select on V_$ARCHIVE_DEST to 'sync_user'; //Allow the synchronization account to view V_$ARCHIVE_DEST. grant select on v_$log to 'sync_user'; //Allow the synchronization account to view v_$log, which shows log file information in the control file. grant select on v_$logfile to 'sync_user'; //Allow the synchronization account to view v_$logfile, which contains redo log file information. grant select on v_$archived_log to 'sync_user'; //Allow the synchronization account to view v$archived_log, which contains archive log information. grant select on V_$LOGMNR_CONTENTS to 'sync_user'; //Allow the synchronization account to view V_$LOGMNR_CONTENTS. grant select on DUAL to 'sync_user'; //Allow the synchronization account to view DUAL, a one-row virtual table used in SELECT syntax. grant select on v_$parameter to 'sync_user'; //Allow the synchronization account to view v_$parameter, a dynamic dictionary view of database parameter values. grant select any transaction to 'sync_user'; //Allow the synchronization account to view any transaction. grant execute on SYS.DBMS_LOGMNR to 'sync_user'; //Allow the synchronization account to use LogMiner for transaction analysis and data recovery. grant alter session to 'sync_user'; //Allow the synchronization account to alter the database session. grant select on dba_objects to 'sync_user'; //Allow the synchronization account to view all database objects. grant select on v_$standby_log to 'sync_user'; //Allow the synchronization account to view v_$standby_log, which contains standby archive log information. grant select on v_$ARCHIVE_GAP to 'sync_user'; //Allow the synchronization account to query missing archive logs. grant select on sys.ICOL$ to 'sync_user'; //Allow the synchronization account to view objects. sys.obj$ is the Oracle dictionary base table containing all objects. grant select on V_$THREAD to 'sync_user'; //Allow the synchronization account to view instance thread information. V_$THREAD is an Oracle dynamic performance view of RAC instance thread status used to identify instance state and log sources for incremental parsing.Pour la synchronisation par lots de l'intégralité des données, accordez également au compte l'autorisation d'interroger toutes les tables :
grant select any table to 'sync_user';Oracle 12c et les versions ultérieures nécessitent cette commande pour permettre au compte d'utiliser LogMiner. Les versions antérieures fournissent LogMiner intégré et ne le requièrent pas.
grant LOGMINING TO 'sync_user';
Activation de la journalisation des archives et supplémentaire, et basculement des fichiers journaux redo
-
Activez la journalisation des archives :
shutdown immediate; startup mount; alter database archivelog; alter database open; -
Activez la journalisation supplémentaire.
Choisissez la journalisation supplémentaire selon vos besoins. Exemple SQL :
//Enable supplemental logging to capture complete changes for real-time synchronization. For database-level logging, run: alter database add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns in the database. alter database add supplemental log data(unique) columns; //Enable supplemental logging for unique-index columns in the database. //You can instead enable it at the table level: alter schema.table add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns in the specified table. alter schema.table add supplemental log data(unique) columns; //Enable supplemental logging for unique-index columns in the specified table. -
Basculez les fichiers journaux redo.
Après avoir activé la journalisation supplémentaire, exécutez la commande suivante plusieurs fois (cinq fois sont généralement recommandées) pour basculer les fichiers journaux redo.
alter system switch logfile;RemarqueLe basculement multiple garantit que le fichier journal actuel peut rouler après remplissage, préservant ainsi les enregistrements d'opérations pour une récupération ultérieure.
Vérification de l'encodage des caractères de la base de données
Exécutez la commande suivante dans la base de données pour vérifier son encodage de caractères :
select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
v$nls_parameters stocke les paramètres de configuration de la base de données.
NLS_CHARACTERSET et NLS_NCHAR_CHARACTERSET correspondent respectivement aux jeux de caractères de la base de données et nationaux, indiquant les formats de stockage pour deux catégories de données de caractères Oracle.
Data Integration prend actuellement en charge UTF8, AL32UTF8, AL16UTF16 et ZHS16GBK lors de la synchronisation des données. Modifiez les encodages de caractères non pris en charge avant la synchronisation.
Vérification des types de données des tables
Utilisez une instruction SQL SELECT pour interroger les types des colonnes de la table. Pour inspecter 'tablename', exécutez :
select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename';
COLUMN_NAME : nom de la colonne de la table.
DATA_TYPE : type de données de la colonne.
all_tab_columns : vue contenant des informations sur toutes les colonnes des tables.
TABLE_NAME : nom de la table cible. Remplacez 'tablename' par le nom réel de la table dans l'instruction.
Vous pouvez également exécuter select * from 'tablename'; pour interroger toutes les données et obtenir les types pour la table cible.
Ajouter une source de données
Avant de développer une tâche de synchronisation dans DataWorks, vous devez ajouter la source de données requise à DataWorks en suivant les instructions décrites dans la rubrique Configuration de la source de données. Vous pouvez consulter les descriptions des paramètres dans la console DataWorks pour comprendre la signification des paramètres lors de l'ajout d'une source de données.
Développer des tâches de synchronisation : flux de travail Oracle
Pour obtenir des informations sur le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration suivants.
Configurer une tâche de synchronisation par lots pour une seule table
Pour la procédure, consultez les rubriques Configuration sans code et Configuration en mode script.
Pour connaître tous les paramètres du mode script et voir des exemples de scripts, reportez-vous à l'Annexe : Exemples de scripts et paramètres.
Configurer une tâche de synchronisation en temps réel pour une seule table
Pour la procédure, consultez la rubrique Configurer une tâche de synchronisation en temps réel (héritée).
Configurer la synchronisation par lots de toute la base de données, la synchronisation en temps réel complète et incrémentielle, ainsi que la synchronisation en temps réel des tables fragmentées
Pour la procédure, consultez la rubrique Configurer des tâches de synchronisation en temps réel de toute la base de données.
FAQ
-
Récupération des données dans une configuration primaire-secondaire
Dans une configuration de reprise après sinistre primaire-secondaire, après le basculement du nœud primaire vers un nœud secondaire, ce dernier récupère continuellement les données depuis le primaire via les journaux binaires (binlogs). La réplication peut présenter un décalage, notamment en raison de la latence réseau. Par conséquent, les données du nœud secondaire peuvent différer considérablement de celles du nœud primaire et ne pas constituer un snapshot complet à l'instant T.
-
Contraintes de cohérence
Oracle est un SGBDR capable de fournir des interfaces de requête fortement cohérentes. Par exemple, si un autre processus écrit dans la base de données après le démarrage d'une tâche de synchronisation, Oracle Reader ne capture pas les nouvelles données en raison du comportement de snapshot de la base de données.
Ce comportement de cohérence s'applique à un Oracle Reader monothread. L'extraction concurrente basée sur votre configuration ne peut pas garantir strictement la cohérence.
Lorsque Oracle Reader divise les données par splitPk, il démarre plusieurs tâches simultanées. Elles ne partagent pas la même transaction de lecture et démarrent à des moments différents, de sorte que les données résultantes ne constituent pas un snapshot cohérent et complet.
Il n'est actuellement pas possible techniquement d'obtenir un snapshot cohérent sur plusieurs threads. Les options d'ingénierie suivantes impliquent des compromis ; choisissez celle qui correspond le mieux à vos besoins.
Utilisez une synchronisation monothread sans division des données. Cette méthode est plus lente, mais offre une bonne cohérence.
Arrêtez les autres processus d'écriture afin que les données restent statiques, par exemple en verrouillant la table ou en arrêtant la réplication secondaire. Cela peut affecter les services en ligne.
-
Encodage de la base de données
Oracle Reader utilise JDBC pour extraire les données. JDBC gère et convertit les différents encodages en interne, il n'est donc pas nécessaire de spécifier un encodage.
-
Synchronisation incrémentielle
Oracle Reader extrait les données à l'aide d'instructions SELECT JDBC. Vous pouvez utiliser
SELECT…WHERE…pour l'extraction incrémentielle :Lorsqu'une application en ligne écrit dans la base de données, elle définit le champ « modify » avec l'horodatage de modification pour les insertions, mises à jour et suppressions logiques. Oracle Reader peut utiliser une condition WHERE basée sur l'horodatage de la synchronisation précédente.
Pour les enregistrements en ajout seul (append-only), utilisez une condition WHERE basée sur l'ID auto-incrémenté maximal de l'étape précédente.
Si aucun champ métier ne permet de distinguer les insertions des mises à jour, Oracle Reader ne peut pas effectuer de synchronisation incrémentielle et doit synchroniser toutes les données.
-
Sécurité SQL
Oracle Reader fournit le paramètre querySql qui vous permet d'écrire une instruction SELECT d'extraction. Oracle Reader ne valide pas la sécurité du paramètre querySql.
Annexe : Exemples de scripts et paramètres
Configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code
Si vous souhaitez configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, vous devez configurer les paramètres associés dans le script selon les exigences de format de script unifié. Pour plus d'informations, consultez la rubrique Configuration en mode script. Les informations suivantes décrivent les paramètres que vous devez configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.
Exemple de script Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oracle",
"parameter": {
"selectedDatabase": "AUTOTEST",
"indexes": [],
"datasource": "oracle_test",
"envType": 0,
"useSpecialSecret": true,
"column": [
"id"
],
"where": "",
"splitPk": "id",
"encoding": "UTF-8",
"table": "AUTOTEST.table01"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "odps",
"parameter": {
},
"name": "Writer",
"category": "writer"
},
{
"name": "Processor",
"stepType": null,
"category": "processor",
"copies": 1,
"parameter": {
"nodes": [],
"edges": [],
"groups": [],
"version": "2.0"
}
}
],
"setting": {
"executeMode": null,
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Paramètres du script Reader
Paramètre | Description | Obligatoire | Valeur par défaut |
datasource | Nom de la source de données. En mode script, vous pouvez ajouter une source de données. La valeur doit correspondre au nom de la source de données ajoutée. | Oui | Aucune |
selectedDatabase | Schéma de la base de données à synchroniser. | Oui | Aucune |
table | Nom de la table à synchroniser, au format Remarque Par exemple, si selectedDatabase est | Oui | Aucune |
column | Colonnes à synchroniser depuis la table configurée, décrites sous forme de tableau JSON. Par défaut, toutes les colonnes sont sélectionnées, par exemple ["*"].
| Oui | Aucune |
splitFactor | Facteur de division qui définit le nombre de fragments de données. Avec des tâches simultanées, les données sont divisées en concurrency × splitFactor fragments. Par exemple, concurrency = 5 et splitFactor = 5 produisent 5 × 5 = 25 fragments répartis sur cinq threads simultanés. Remarque Plage recommandée : 1 à 100. Une valeur excessivement grande peut provoquer une erreur de mémoire insuffisante (out-of-memory). | Non | 5 |
splitMode | Options de mode de division :
Remarque Utilisez splitMode conjointement avec splitPk.
| Non | randomSampling |
splitPk | Lorsque Oracle Reader extrait des données, la spécification de splitPk signifie que vous souhaitez diviser les données selon le champ représenté par splitPk. La synchronisation démarre des tâches simultanées pour améliorer l'efficacité.
Remarque ROWID ne peut pas être utilisé comme splitPk pour une vue. | Non | Aucune |
where | Condition de filtrage. Oracle Reader assemble le SQL en fonction de la column, de la table et de la condition where spécifiées, et extrait les données avec ce SQL. Pour les tests, définissez WHERE sur row_number().
| Non | Aucune |
querySql (mode avancé uniquement ; mode assistant non pris en charge) | Lorsqu'une condition WHERE ne peut pas décrire votre filtre, utilisez querySql pour écrire du SQL personnalisé. Data Integration ignore alors les paramètres table et column ainsi que les autres paramètres, et filtre les données directement avec querySql. Par exemple, pour joindre plusieurs tables, utilisez | Non | Aucune |
fetchSize | Nombre d'enregistrements récupérés par lot par le plug-in et le serveur de base de données. Cela contrôle les interactions réseau et peut améliorer considérablement les performances d'extraction. Remarque Un fetchSize excessivement grand (> 2 048) peut provoquer une erreur de mémoire insuffisante (OOM) pendant la synchronisation. | Non | 1 024 |
Exemple de script Writer
{ "type":"job", "version":"2.0",//Numéro de version. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"oracle",//Nom du plug-in. "parameter":{ "postSql":[],//Instructions SQL à exécuter après la synchronisation. "datasource":"", "session":[],//Paramètres de session de connexion à la base de données. "column":[//Champs. "id", "name" ], "encoding":"UTF-8",//Format d'encodage. "batchSize":1024,//Nombre d'enregistrements soumis en un lot. "table":"",//Nom de la table. "preSql":[]//Instructions SQL à exécuter avant la synchronisation. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//Nombre d'enregistrements d'erreur. }, "speed":{ "throttle":true,//Lorsque throttle est faux, mbps est ignoré et le débit est illimité ; lorsqu'il est vrai, le débit est limité. "concurrent":1, //Concurrence des jobs. "mbps":"12"//Limite de débit. Ici, 1 mbps = 1 Mo/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }
Paramètres du script Writer
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
datasource |
Nom de la source de données. En mode script, vous pouvez ajouter une source de données. La valeur doit correspondre au nom de la source de données ajoutée. |
Oui |
Aucune |
|
table |
Nom de la table de destination. Si le schéma de la table diffère du nom d'utilisateur configuré, utilisez schema.table comme format de table. |
Oui |
Aucune |
|
writeMode |
Choisissez le mode d'importation. Seul le mode INSERT INTO est pris en charge. En cas de conflit de clé primaire ou d'index unique, la ligne n'est pas écrite et est signalée comme donnée erronée. |
Non |
insert into |
|
column |
Champs de la table de destination à écrire, séparés par des virgules. Exemple : |
Oui |
Aucune |
|
preSql |
Instructions SQL à exécuter avant la tâche de synchronisation. Le mode assistant permet une seule instruction ; le mode script prend en charge plusieurs instructions, telles que l'effacement des anciennes données. |
Non |
Aucune |
|
postSql |
Instructions SQL à exécuter après la tâche de synchronisation. Le mode assistant permet une seule instruction ; le mode script prend en charge plusieurs instructions, telles que l'ajout d'un horodatage. |
Non |
Aucune |
|
batchSize |
Nombre d'enregistrements soumis en un lot. Cela réduit considérablement les interactions réseau entre Data Integration et Oracle et améliore le débit. Une valeur excessivement grande peut provoquer une erreur de mémoire insuffisante (OOM) pendant la synchronisation. |
Non |
1 024 |