Téléchargement des produits


Version anglaise


 

L'utilitaire est capable d'exécuter des fichiers scripts permettant l'insertion de données dans la base de données. Ces scripts permettent de mélanger des requêtes SQL et des insertions de fichiers de données dans la base (IXF, ASCII, etc.).

 

On distingue trois cas différents d'utilisation :

  • Insertion de données initiales dans une base de données nouvellement créée.

  • Insertion de nouvelles données dans une base de données en mise à jour.

  • Importation / exportation des données d'une base de données.

Un script d'insertion de données contient :

  • des lignes de commentaire commençant par ; ou #,

  • des requêtes SQL (toute ligne commençant par un caractère alphabétique est considérée comme une requête),

  • des séquences d'échappement permettant de déclencher des actions spécifiques (ex : importation d'un fichier dans une table).

 

Par défaut, les scripts de données considèrent que les requêtes sont fournies ligne par ligne.

Il est possible d'utiliser des scripts formatés en précisant la méthode de séparation entre les requêtes, via un commentaire "--options" inséré comme première ligne du fichier. Dans ce mode, les blancs en début et en fin de requête sont supprimés.

Deux syntaxes sont possibles :

  • Utilisation d'un caractère séparateur (généralement le caractère ;).
    Dans ce cas, la requête peut être placée sur plusieurs lignes, toutes les requêtes sont terminées par le caractère spécifié. Dans ce cas le commentaire doit indiquer le caractère à utiliser dans le paramètre "sep_cha". Cette syntaxe ne permet généralement pas d'exécuter des blocs d'instructions SQL de type PL/SQL.
    Exemple :

    --options sep_char=;
    insert test values (
       1,
       'clé un',
       'valeur clé un'
    );
    insert test values (
       2,
       'clé deux',
       'valeur clé deux'
    );

 

  • Utilisation d'une commande pour séparer deux requêtes (par exemple "go" si on prend une syntaxe compatible avec l'interpréteur de requête de SQL Server ou "/" si on prend une syntaxe compatible Oracle).
    Dans ce cas le commentaire doit indiquer la commande à utiliser dans le paramètre "sep_command". Cette syntaxe permet d'exécuter du code de type PL/SQL de manière "lisible.
    Exemple :

    --options sep_command=go
    insert test values (
       1,
       'clé un',
       'valeur clé un'
    )
    go
    insert test values (
       2,
       'clé deux',
       'valeur clé deux'
    )
    go

Restriction : la commande doit être fournie sur une seule ligne, il ne s'agit pas d'un véritable interpréteur SQL.

 

Séquences d'échappement reconnues :

\INSERT <NomTable> <NomFichier> <TypeDonnees>

\REPLACE <NomTable> <NomFichier> <TypeDonnees>

\UPDATE <NomTable> <NomFichier> <TypeDonnees>

 

INSERT insère des données supplémentaires dans la table, REPLACE écrase au préalable le contenu de la table et UPDATE met à jour ou insère les données en fonction de la clé primaire de la table.

Attention, le mode UPDATE n'est compatible qu'avec les sources de données SQL. Il ne fonctionnera pas avec des fichiers BTrieve.

Exemple :
\INSERT SYSADEL.HSLREFER HSLREFER.IXF IXF

 

\RegDWORD Chemin,Cle,Valeur [action]

 

Permet de conditionner l'exécution d'une instruction par un test d'une valeur de type DWORD (numérique) dans la base de registre.

 

Exemple :
\RegDWORD HKEY_LOCAL_MACHINE,SOFTWARE\Sample,RegTest,2 INSERT INTO SAMPLE.SAMPLE_DATA VALUES ('r;Reg test value 2 succeeded')

 

\RegSZ Chemin,Cle,Valeur [action]

 

Idem \RegDWORD, mais le test porte sur une valeur de type chaîne.

 

\Commit

\Rollback

 

Permet d'insérer des instructions de contrôle de transaction dans le source du script.

 

Important : il est recommandé de ne pas utiliser directement les instructions Commit et Rollback.

 

\Autocommit [on|off]

 

Passe la connexion en mode transactionnel (\Autocommit off) ou en mode de validation automatique (\Autocommit on).

 

Penser que des scripts en mode Autocommit ne sont pas ré-entrants en cas d'erreur (les instructions précédentes ne seront pas annulées).

 

\Dbm [DB2|Oracle|SQL Server...) [action]

 

Permet de conditionner l'exécution d'une instruction par un test sur le gestionnaire de bases de données utilisé.

 

Remarque : les valeurs Oracle7 et Oracle8 sont reconnues pour compatibilité ascendante des scripts.

 

\SetUser <utilisateur> <mot_de_passe>

 

Permet de modifier l'utilisateur connecté. Cette instruction valide la transaction en cours et provoque la re-connexion avec l'utilisateur spécifié.

 

\System [commande]

 

Exécute la commande système spécifiée.

 

Par exemple, modification du paramètre LOGFILSIZ sur la base de données (utilisation de la séquence de substitution {dbt database}) :
\system db2cmd /c /w /i db2 update db cfg for {dbt database}using logfilsz 2048

 

Remarque : les séquences d'échappement sont désormais acceptées aussi dans les scripts MPD génériques.

 

Séquences d'échappement de substitution :

Ces séquences permettent de paramétrer une requête en fonction des paramètres de l'outil de gestion de bases de données.

 

La substitution des séquences d'échappement peut être désactivée en insérant la ligne "Substitution=0" dans la section [Database] du fichier de description.

 

Elles prennent la forme générale {dbt <paramètre>}. Les paramètres interrogeables sont les suivants :

 

Paramètre

Type

Description

dbms

chaîne (256)

Nom du gestionnaire de bases de données.

database

chaîne (256)

Nom de la base de données.

user

chaîne (256)

Nom de l'utilisateur connecté (blanc lors de la création si le nom d'utilisateur n'a pas été spécifié dans le fichier de description).

password

chaîne (256)

Mot de passe de l'utilisateur.

btrieve_directory

chaîne (256)

Répertoire des fichiers (cas d'une base Btrieve).

environ(nom_var)

chaîne (256)

Substitué par la valeur de la variable d'environnement "nom_var".

param(nom_param)

chaîne (256)

Substitué par la valeur du paramètre "nom_param".

Par exemple pour la commande "dbtool ... -lang:fr_fr", la séquence "{dbt param(lang)}" sera substituée par "fr_fr".

 

Par exemple, la commande suivante :

\system db2cmd /c /w /i db2 update db cfg for {dbt database}using logfilsz 2048

sera substituée à l'exécution, lors de la création de la base SAMPLE par :

\system db2cmd /c /w /i db2 update db cfg for SAMPLE using logfilsz 2048

 

Lors d'une mise à jour, le système essaye d'exécuter les scripts d'insertion de données correspondant aux scripts de mise à jour des structures de tables. Ces scripts sont d'abord recherchés dans la section spécifique au gestionnaire utilisé puis, à défaut, dans la section [Data/Generic].

 

↑ Haut de page

  • Aucune étiquette