Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2006, 16h34   #1
Invité régulier
 
Homme
Consultant informatique
Inscription : septembre 2006
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 48
Localisation : Canada

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : septembre 2006
Messages : 12
Points : 7
Points : 7
Par défaut passage de paramètre d'un fichier Batch à un SQL

Bonjour

Je recherche la sythaxe pour passer des paramètres à un fichier SQL
Voici un
exemple:
Fichier==>Exe_Fichier.bat
Son contenu
call ..\ConnectionDB2_1.bat
DB2 -tvf ..\..\..\Script\AGBN\Automobile\Lst_cotation.sql 'auto', 'A'

Fichier==> Lst_cotation.sql
Ce fichier reçoie 2 paramètre comment définir la réception des paramètre
Contenu du fichier:
INSERT INTO TA2550 (no_ctra_assn_in, cd_utlr_cre)
SELECT no_ctra_assn_in, ' '
FROM T61011
WHERE dhdrn_maj_str_pol >= (SELECT dt_hr_deb_sel
FROM TA1521
WHERE nm_un_pgmn = %paramètre_1%)
AND cd_lgn_aff_prd = parametre_2;

Merci
PierreS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2006, 13h37   #2
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
C'est plutôt une question système mais pour autant que je me rappelle, tu doit utilise %1 pour le premier paramètre %2 pour le second.

Code :
1
2
3
 
call ..\ConnectionDB2_1.bat auto, A
DB2 -tvf ..\..\..\Script\AGBN\Automobile\Lst_cotation.sql %1, %2
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 17h14   #3
Invité régulier
 
Homme
Consultant informatique
Inscription : septembre 2006
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 48
Localisation : Canada

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : septembre 2006
Messages : 12
Points : 7
Points : 7
Mais dans le fichier Lst_cotation.sql quel est la manière de passer les paramètre dans le SQL.

Le fichier "Lst_cotation.sql " doit recevoir les 2 paramètres 'auto', 'A'

Autrement dit

INSERT INTO TA2550 (no_ctra_assn_in, cd_utlr_cre)
SELECT no_ctra_assn_in, ' '
FROM T61011
WHERE dhdrn_maj_str_pol >= (SELECT dt_hr_deb_sel
FROM TA1521
WHERE nm_un_pgmn = 'auto'
AND cd_lgn_aff_prd = 'A';
PierreS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 20h23   #4
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Par défaut Substitution de paramètres

J'essaierais ceci :

Exe_Fichier.bat :

Code :
1
2
call ..\ConnectionDB2_1.bat 'auto', 'A'
DB2 -tvf ..\..\..\Script\AGBN\Automobile\Lst_cotation.sql %1, %2

Lst_cotation.sql :

Code :
1
2
3
4
5
6
7
INSERT INTO TA2550 (no_ctra_assn_in, cd_utlr_cre)
SELECT no_ctra_assn_in, ' '
FROM T61011
WHERE dhdrn_maj_str_pol >= (SELECT dt_hr_deb_sel
FROM TA1521
WHERE nm_un_pgmn = %1
AND cd_lgn_aff_prd = %2);
Qu'est-ce que ça donne ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 14h36   #5
Invité régulier
 
Homme
Consultant informatique
Inscription : septembre 2006
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 48
Localisation : Canada

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : septembre 2006
Messages : 12
Points : 7
Points : 7
Par défaut Passage de paramètre

J'ai modifié le script Lst_cotation.sql : en ajoutant %1 et sa ne fonctionne pas. Le fichier Lst_cotation.sql est un script SQL de DB2. Tandis que %1 est une commande DOS.

Merci
PierreS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 12h13   #6
Membre régulier
 
Avatar de delas
 
Inscription : avril 2004
Messages : 100
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2004
Messages : 100
Points : 72
Points : 72
j'ai le meme probleme et je n'ai pas de solution...

je relance le sujet au cas ou quelqu'un ai une idée?
delas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 12h40   #7
Nouveau Membre du Club
 
Développeur Java
Inscription : septembre 2006
Messages : 37
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : septembre 2006
Messages : 37
Points : 29
Points : 29
Il me semble que les paramètres en batch sont %1%, %2%, etc. et non %1 (essaye au cas où).

De même pour les variables:

Code :
1
2
3
 
SET VARBLAHBLAH=du texte
echo %VARBLAHBLAH%
Ensuite, j'ai déjà eu des soucis avec les passages de paramètres, et il est préférable de faire comme suit:

Code :
1
2
3
4
 
SET PARAM1=%1%
SET PARAM2=%2%
echo %PARAM1% %PARAM2%
Aussi bizarre que ca puisse paraître, le fait de tapper "echo %1% %2%" directement ne produit pas le même affichage (du moins dans certain de mes scripts).

L'autre question, c'est est-ce que la commande DB2 -tvf accepte des paramètres effectivement ou non, et a première vue j'en doute.

Dans ton cas, je te conseillerai de directement mettre la requête SQL à l'intérieur de ton .bat :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
SET P1=%1%
SET P2=%2%
SET REQUETE=INSERT INTO TA2550 (no_ctra_assn_in, cd_utlr_cre)
SELECT no_ctra_assn_in, ' '
FROM T61011
WHERE dhdrn_maj_str_pol >= (SELECT dt_hr_deb_sel
FROM TA1521
WHERE nm_un_pgmn = %P1%)
AND cd_lgn_aff_prd = %P2%;
 
DB2 -tv %REQUETE%
Note: tu auras à écrire la totalité de la requête sur une seule et unique ligne du fichier .bat, car de mémoire il n'y a pas de gestion de texte multiligne.
xss.xas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 20h13   #8
Invité régulier
 
Homme
Consultant informatique
Inscription : septembre 2006
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 48
Localisation : Canada

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : septembre 2006
Messages : 12
Points : 7
Points : 7
En produisant une variable qui contient la commande SQL. Cette variable est passé à l'exécution de DB2.
PierreS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h26.


 
 
 
 
Partenaires

Hébergement Web