Если я подключусь к IBMi по ssh и запущу qsh, я могу запустить db2 -S "SELECT * FROM LIB.SOMEPF"
и получите результат. Я не могу сделать это с экрана PASE по умолчанию. я получил
$ /usr/bin/db2
/usr/bin/db2: cannot execute
Можно ли запускать sql-запросы из PASE вместо запуска QSH?
В моем домашнем каталоге есть сценарий оболочки db2. Это было так долго, что я не знаю, когда и как это произошло. Может быть частью 5799-PTL. Я знаю, что бесполезно, но вот содержание:
ls -al db2
-rwxr-xr-x 1 buck 0 646 Jul 02 2013 db2
$
cat db2
#!/QOpenSys/usr/bin/ksh
# map base name "qsh_inout" to "qsh" (just run the interpreter)
basename=${0##*/}
if [[ "$basename" = qsh_inout ]] ; then
basename=qsh
fi
args=''
for temp ; do
args="$args'"
# double embedded quotes halved by CL CALL
while [[ "$temp" = *\'* ]] ; do
args="$args${temp%%\'*}''"
temp="${temp#*\'}"
done
args="$args$temp' "
shift
done
# Copy environment variables, call utility in this process,
# do not process OS/400 messages or spooled output files
exec /QOpenSys/usr/bin/system -eiqs "CALL QSYS/QP0ZCALL ('/usr/bin/$basename' $args)"
Когда я CALL QP2TERM
а затем введите команды db2, например db2 -S 'select * from datesample'
он работает с этим сценарием.