Si ingreso a mi IBMi e inicio qsh, puedo ejecutarlo db2 -S "SELECT * FROM LIB.SOMEPF"
y obtener los resultados. No puedo hacerlo desde la pantalla PASE predeterminada. yo obtengo
$ /usr/bin/db2
/usr/bin/db2: cannot execute
¿Es posible ejecutar consultas SQL desde PASE en lugar de iniciar QSH?
Respuesta1
Tengo un script de shell db2 en mi directorio de inicio. Ha estado allí tanto tiempo que no sé cuándo ni cómo llegó allí. Puede ser parte de 5799-PTL. No es útil, lo sé, pero aquí está el contenido:
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)"
Cuando CALL QP2TERM
emito comandos db2 como si db2 -S 'select * from datesample'
se ejecutara con este script.