Ejecutar consultas SQL desde PASE en lugar de QSH

Ejecutar consultas SQL desde PASE en lugar de QSH

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 QP2TERMemito comandos db2 como si db2 -S 'select * from datesample'se ejecutara con este script.

información relacionada