La source SQL (SRC = "SQL") permet la lecture de données dans toute base SQL accessible par un Driver SQL Adélia (Oracle, DB2, SQL Server, ODBC).
Les paramètres reconnus pour la source sont les suivants :
Paramètres en entrée (DATA_SRC)
Nom paramètre |
Type |
Obligatoire |
Description |
DBM |
chaîne |
Oui (*) |
Type (alias) du gestionnaire de bases de données : - DB2 : pilote API pour DB2 UDB, - Oracle : pilote API pour Oracle (8.0 et >), - SQL Server : pilote API pour SQL Server, - ODBC : pilote API pour ODBC. Les valeurs Oracle7 et Oracle8 sont reconnues pour compatibilité avec les scripts existants. Dans le cas de la version Java, ce paramètre est optionnel si le paramètre DATABASE contient une URL JDBC (voir ci-dessous), et peut également indiquer un nom de classe du pilote JDBC qui sera dans ce cas instancié par l'outil. |
DLL |
chaîne |
Oui (*) |
Remplacement pour DBM. Permet de spécifier directement un pilote API par le nom de sa DLL (ex : apiora.dll). |
DATABASE DB |
chaîne |
Oui |
Nom, ou URL d'accès de la base de données contenant les données à transférer. |
USER |
chaîne |
Non |
Utilisateur connecté à la base de données. Si ce paramètre n'est pas spécifié, une connexion système sera tentée. |
PASSWORD |
chaîne |
Non |
Mot de passe de l'utilisateur. |
CONNECT |
chaîne |
Non |
Chaîne de connexion à la base de données sous la forme "user.password". Paramètre supporté pour compatibilité ; l'utilisation des paramètres USER et PASSWORD est recommandée. |
CONNECT |
chaîne |
Non |
Chaîne de connexion à la base de données sous la forme "user.password". Si ce paramètre n'est pas spécifié, une connexion système sera tentée. |
REQUEST |
chaîne |
Oui (**) |
Requête SQL produisant l'ensemble des données à exporter. Toute requête SQL valide de type "SELECT" peut être utilisée pour produire les données. |
TABLE |
chaîne |
Oui (**) |
Déprécié : ce paramètre est accepté si le script est en version 1.0. Nom de la table (schéma.nomtable) dont les données doivent être exportées. Raccourci pour (REQUEST="SELECT * FROM schéma.nomtable") |
FETCHSIZE | entier | Non | Uniquement pour l'implémentation JAVA du CopyB, ce paramètre permet de fixer le buffer de lecture du curseur SQL. La valeur par défaut est de 25 (lecture des données par pages de 25 lignes). |
Paramètres en sortie (DATA_DEST)
Nom paramètre |
Type |
Obligatoire |
Description |
DBM |
chaîne |
Oui (*) |
Type (alias) du gestionnaire de bases de données : - DB2 : pilote API pour DB2 UDB, - Oracle : pilote API pour Oracle (8.0 et >), - SQL Server : pilote API pour SQL Server, - ODBC : pilote API pour ODBC. Les valeurs Oracle7 et Oracle8 sont reconnues pour compatibilité avec les scripts existants. Dans le cas de la version Java, ce paramètre est optionnel si le paramètre DATABASE contient une URL JDBC (voir ci-dessous), et peut également indiquer un nom de classe du pilote JDBC qui sera dans ce cas instancié par l'outil. |
DLL |
chaîne |
Oui (*) |
Remplacement pour DBM. Permet de spécifier directement un pilote API par le nom de sa DLL (ex : apiora7.dll). |
DATABASE DB |
chaîne |
Oui |
Nom, ou URL d'accès de la base de données contenant les données à transférer. Dans le cas de la version Java ce paramètre peut contenir une URL d'accès au format Windows (URL JDBC dérivée des paramètres DBM et DATABASE), ou une URL JDBC. |
USER |
chaîne |
Non |
Utilisateur connecté à la base de données. Si ce paramètre n'est pas spécifié, une connexion système sera tentée. |
PASSWORD |
chaîne |
Non |
Mot de passe de l'utilisateur. |
CONNECT |
chaîne |
Non |
Chaîne de connexion à la base de données sous la forme "user.password". Paramètre supporté pour compatibilité ; l'utilisation des paramètres USER et PASSWORD est recommandée. |
CONNECT |
chaîne |
Non |
Chaîne de connexion à la base de données sous la forme "user.password". Si ce paramètre n'est pas spécifié, une connexion système sera tentée. |
SCHEMA |
chaîne |
Non |
Schéma propriétaire de la table (version 2.0). |
TABLE |
chaîne |
Oui |
Nom de la table (schéma.nomtable) destinataire des données. Remarque : le format (schéma.nomtable) est supporté pour compatibilité uniquement si la version du script est inférieure à 2.0. Dans le cas contraire, il sera interprété comme un nom SQL long contenant un point. En version 2.0, le schéma propriétaire doit être spécifié dans le paramètre SCHEMA. |
MODE |
chaîne |
Non |
Mode d'insertion des données : - INSERT : les données sont insérées dans la table (défaut). - REPLACE : les données viennent remplacer les données de la table. Une clause de suppression peut alors être spécifiée (DELETE) ; sinon, toutes les données initiales de la table sont supprimées. - UPDATE : les données sont mises à jour ou ajoutées en fonction de la clé primaire de la table. Si la table ne possède pas de clé ou si la clé comprend toutes les colonnes, les données sont ajoutées. - CREATE : la table est recréée à partir des informations en entrée. Cette option n'est possible que si la source des données est capable de décrire précisément la structure de la table à générer. |
DELETE |
chaîne |
Non |
Si la clause de suppression est spécifiée (en mode REPLACE), une requête "DELETE FROM table WHERE clause" sera exécutée avant l'insertion des données. |
COMMIT |
entier |
Non |
Nombre estimé de Ko de données à insérer dans la table entre deux points de validation (Commit). Si ce paramètre n'est pas spécifié, une valeur de "1000" (1 Mo) sera prise par défaut. Une valeur inférieure ou égale à zéro provoquera un fonctionnement en mode AUTOCOMMIT (validation automatique de chaque ligne insérée). |
Notes :
(*) |
Les paramètres DBM et DLL sont mutuellement exclusifs |
(**) |
Les paramètres REQUEST et TABLE sont mutuellement exclusifs |
Spécificités de la version Java :
La source SQL est compatible avec les scripts écrits pour la version Windows. Une URL JDBC sera automatiquement dérivée des paramètres DBM et DATABASE. Les valeurs "DB2", "ORACLE", "SQL SERVER", "MYSQL" et "POSTGRESQL" sont supportées. Les sources de données "ODBC" ou "ACCESS" ne sont pas supportées.
Toutefois, des limitations s'appliquent :
De façon générale, les pilotes JDBC ne supportent pas la configuration du client local du gestionnaire de bases de données (catalogue DB2, TNSNAMES.ORA...). Si le script indique simplement un nom de base et non une URL au format Windows (NOMBASE@serveur:port), l'URL générée indiquera "localhost" comme nom de serveur, ce qui ne fonctionnera pas si le catalogue local référence une base de données distante.
Les pilotes JDBC ne supportent pas forcément l'authentification de l'utilisateur sur le système d'exploitation (connexion sans paramètres utilisateur / mot de passe). Il est donc préférable que les paramètres de connexion soient indiqués dans le script.
La source SQL accepte la définition d'une URL JDBC dans le paramètre "DATABASE". Dans ce cas, le script ne sera pas portable sur la version Windows, et le paramètre DBM est ignoré.
Exemple de réécriture automatique d'URL :
(DBM="DB2")(DB="TEST") | |
(DBM="DB2")(DB="TEST@db2host") | jdbc:db2://db2host:50000/TEST |
(DBM="Oracle")(DB="TEST@orahost") | jdbc:oracle:thin:@orahost:1521/TEST |
Cliquez ci-dessous pour plus d'informations sur :