2009-07-09 8 views
1

J'ai un script Oracle que j'essaie de convertir en syntaxe db2 valide. Dans ce fichier sql, j'ai plusieurs appels à d'autres fichiers sql qui passent dans un paramètre en utilisant la syntaxe '@'.Fichier script db2 sql

par exemple.

Est-ce que quelqu'un peut m'aider avec des instructions équivalentes db2 valides? Y a-t-il une commande d'exécution équivalente dans db2? est-il possible de passer des paramètres à un script sql dans db2?

grâce,

smauel

Répondre

6

La chose que vous êtes est après la DB2 Command Line Processor (CLP).

Si vous voulez exécuter un script, vous exécuterez dans le CLP:

db2 -vtf script1 

- f indique au CLP d'exécuter l'entrée de commande à partir du fichier donné.

Voici le full list of options.

Malheureusement, db2 ne supporte pas le passage de paramètres à un script. Vous devez combiner vos commandes db2 -vtf avec d'autres commandes de script (telles que sed) pour générer les scripts pour vous, comme dans this example.

1

Il existe un moyen plus simple de passer des paramètres, cela fonctionne très bien pour nous (cela peut ne pas fonctionner avec des instructions sql multilignes (complexes)).

Convertissez votre script SQL en script shell en ajoutant 'db2' au début de chaque ligne. Que vous pouvez utiliser la syntaxe de remplacement de variable standard de votre shell dans vos scripts.

donc au lieu de

insert ... 
update ... 

vous aurez

db2 insert ... 
db2 update ... 
0

1) Placez le fichier nom_fichier.sql dans SQLLIB/BIN

2) course db2cmd

3) exécutez ceci pour se connecter au db requis

db2 connect to *dbname* user *userid* using *password* 

4) excute cette commande

db2 -vtf *filename.sql* 

Cela devrait exécuter les instructions SQL dans le fichier un par un. Les instructions sql doivent se terminer par un point-virgule.