Voici quelques autres alternatives.
Outil de transfert de données - Vous pouvez exécuter l'outil de transfert de données iSeries à partir de la ligne de commande (RTOPCB). Commencez par exécuter la version de l'interface graphique et créez un fichier de définition. Si vous éditez ce fichier avec un éditeur de texte, vous verrez que c'est juste un fichier INI démodé et vous pouvez facilement trouver la ligne avec la requête dedans. À partir de là, vous pouvez écrire un fichier batch ou pré-traiter le fichier texte pour vous permettre de manipuler la requête avant de la soumettre à l'outil de requête. QSHELL - Si vous pouvez vous connecter interactivement à l'iSeries, vous pouvez trouver l'environnement QSHELL plus familier que CL ou REXX (bien que REXX soit plutôt amusant). QSHELL est un environnement POSIX complet fonctionnant sur l'iSeries. Utilisez la commande STRQSH pour démarrer QSHELL. Vous pouvez avoir ksh ou csh en tant que shell. Dans QSHELL, il y a une commande appelée "db2" qui soumet des requêtes. Donc, vous devriez être en mesure de faire quelque chose comme ça à l'intérieur QSHELL:
system> VariableName = 'blah blah'
system> db2 "select * from TableName where Column = \'$VariableName\'"
Vous pourriez avoir à jouer avec les citations pour obtenir ksh de les transmettre correctement.
De même, dans QSHELL, vous devriez avoir une installation complète de Perl qui vous permettra d'utiliser DBI pour obtenir des données. D'autres façons d'interagir avec les données sur l'iSeries: requête du client avec Python via ODBC; requête du client avec Jython via JDBC; Installez Jython directement sur l'iSeries, puis interrogez via JDBC.
Jusqu'à i 7.1, iNav n'a pas de capacité « variable ». Mais il ne devrait pas y en avoir besoin de toute façon. Si vous pouvez taper une instruction DECLARE et un nom de variable et sa valeur, vous pouvez également taper (ou coller ou trouver/remplacer) la valeur dans une instruction ad hoc. Pourquoi une variable serait-elle nécessaire? (Mais notez que j'en ai voulu un de temps en temps, je m'intéresse plus aux raisons pour lesquelles d'autres le veulent.) – user2338816
Une des raisons pourrait être que si vous avez une requête qui fait référence à une variable plus d'une fois, vous ne voudrez peut-être pas répéter vous-même en collant la valeur à plusieurs reprises. –
Compris, bien que ce soit lorsque Find/Replace (all) serait utilisé. Cela coûte quelques clics de souris supplémentaires. – user2338816