Bonjour,
Je n'ai pas l'occasion d'utiliser FreeTDS, mais sous sqlcmd, une solution serait de procéder comme suit :
1 2 3 4 5 6 7
| USE GTB_MATMUT
go
declare @agence int
-- affectation de la variable @agence depuis le paramètre externe initialisé dans le fichier batch (l'appelant )
set @agence = $(cmdvarAgence)
select top 1 valeur from agence_capteur where id_agence = @agence and id_capteur = 10001 order by date_heure desc
go |
Puis dans dans ton fichier de commande faire quelque chose comme ceci :
sqlcmd -S MonServeur -d Mabase -v cmdvarIdAgence=1245 -i script_elec.sql
Remarque :
Si cette technique de gestion des variables de substitution n'existe pas sous FreeTDS/Linux, tu peux aisément sous linux garder le même principe et réaliser ton propre traitement shell pour substituer les paramètres (dans notre exemple il s'agit du substituer le paramètre $(cmdvarAgence) par la valeur 1245), et ce, avant de soumettre le script transformé à FreeTDS
Il faut juste garder à l'esprit qu'il s'agit de paramètres de substitution stricto textuelle. Il ne s'agit donc pas de paramètres typés. Le fonctionnement et la finalité comparée à sqlcmd sera presque identique.
A+
Partager