Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
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 15/05/2007, 15h13   #1
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
Par défaut [ASE 12.0 ] Batch ISQL Parametres TSQL

Bonjour
Est-il possible de lancer sous DOS iSql avec des paramétres:

Citation:
>isql -Sxxx -Uyyy -Pzzz -i<script_TSQL> param1 param2
Ceci dans le but de récupérer (comment faire ?) ces paramétres pour les instructions du script Transact SQL.
Par exemple:
Code :
SELECT * FROM <nom_table> WHERE <nom_colonne>=param1
Merci
mso
msomso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h22   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Non, isql ne permet pas de passer des paramètres sur la ligne de commande.

Par contre sqsh (www.sqsh.org) le permet, en faisant qqch comme ceci:
Code :
1
2
 
sqsh -Usa -P... -S... -L p1=valeur -L p2=valeur...
et dans le code SQL on mets
Code :
1
2
3
4
 
SELECT ... FROM ...
WHERE ma_colonne = "$p1"
...
Malheureusement je ne pense pas que sqsh soit compilable sous Windows sans apporter passablement de modifications...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2007, 15h00   #3
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
Bonjour
même si je ne peux pas me servir de sqsh (l'application est lancée à partir du client Windows), merci d'avoir signalé cette possibilité.
Je pense utiliser plutôt les procédures stockées et le lancer (avec les paramètres) via les variables environnement. En générant dynamiquement le script de lancement (cf. la discussion "Saisie de données dans une procédure stockée".
Je vais donc faire ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
@echo off
SET Nom_PROC=%1%
SET Param1=%2%
SET Param2=%3%
 
echo exec %Nom_Proc%  %Param1% %Param2% > MonSQL.sql
echo go >> MonSQL.sql
 
isql -Usa -Pxxx -SMonServeurSQL -i MonSQL.sql -D maBase
 
del MonSQL.sql
mso
P.S.
J'ai encore une petite question: peut-on déclarer des variables dans les scripts de T-SQL ?
msomso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2007, 07h47   #4
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
c.f. ton "ps".

Oui - un script isql a exactement la même syntaxe qu'une proc stockée. Avec Sybase il n'y a pas de différence (pas de PL/SQL vs. SQL pur pour les requêtes, p.ex.).

Donc dans un script SQL simple tu peux faire:

Code :
1
2
3
4
5
6
 
declare @ladate datetime, @nom varchar(50)
SELECT @ladate="%DATE%", @nom = "%NOM%"
 
SELECT ... FROM ... WHERE lastChangeDate = @ladate AND nom = @nom
...
Je ne m'y connais pas très bien en script .bat windows (je n'en ai plus fait depuis la fin des années 80 ), mais je suppose qu'on peut trouver un moyen de faire apparaitre les valeurs des variables %xxx% dans le script SQL avant de le faire exécuter dans avec isql (sous Unix je ferais un "here" document, mais je suspecte que cela ne marche pas comme cela sous Windows...)

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2007, 23h52   #5
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
merci bien
msomso 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 16h17.


 
 
 
 
Partenaires

Hébergement Web