Se eu fizer ssh em meu IBMi e iniciar o qsh, posso executar db2 -S "SELECT * FROM LIB.SOMEPF"
e obter os resultados. Não consigo fazer isso na tela padrão do PASE. eu recebo
$ /usr/bin/db2
/usr/bin/db2: cannot execute
É possível executar consultas SQL do PASE em vez de iniciar o QSH?
Responder1
Eu tenho um script de shell do DB2 em meu diretório inicial. Está aí há tanto tempo que não sei quando ou como chegou lá. Pode fazer parte do 5799-PTL. Não ajuda, eu sei, mas aqui está o conteúdo:
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)"
Quando eu CALL QP2TERM
e então emito comandos db2 como se db2 -S 'select * from datesample'
ele fosse executado com este script.