web-dev-qa-db-fra.com

Comment puis-je passer des paramètres à un "script SQL" de ISQL

Je me demande s'il est possible de passer des paramètres à un script SQL dans l'utilitaire ISQL de Sybase.

Par exemple, je voudrais stocker une instruction SELECT dans le fichier the_script.sql cela ressemblerait à quelque chose comme

select
   col_1,
   col_2,
   etc
from
   table
where
   cond1 > $param1 and
   cond2 < $param2

Ensuite, avec ce fichier, j'aimerais "exécuter" iSQL avec

:r the_script.sql 900 20

avec l'attente que $param1 est répété avec 900 et $param2 avec 20.

Y a-t-il une possibilité d'atteindre ce que je veux?

2

En regardant votre cas d'utilisation, il semble que vous souhaitiez une procédure stockée, alors voici un que j'ai écrit pour vous:

CREATE PROC the_script
(
   @param1 int = null,
   @param2 int = null
)
AS
BEGIN
   select
      col_1,
      col_2,
      etc
   from
      table
   where
      cond1 > @param1 and
      cond2 < @param2
END

Maintenant, étant dans ISQL, vous pouvez l'exécuter:

exec the_script 900, 20

Salutations.

3
B0rG

Je ne pense pas que cela puisse être fait positionnellement à partir de ISQL. En utilisant une enveloppe de script shell, vous pouvez faire quelque chose comme

#!/bin/bash

PARAM1=$1
PARAM2=$2

isql -u whoever -p whatever -s myserver << EOF
select * from mytable where mycolumn > ${PARAM1} and mycolumn < ${PARAM2}
go
EOF
2
Gaius