Executando consultas SQL do PASE em vez do QSH

Executando consultas SQL do PASE em vez do QSH

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 QP2TERMe então emito comandos db2 como se db2 -S 'select * from datesample'ele fosse executado com este script.

informação relacionada