從 PASE 而不是 QSH 執行 SQL 查詢

從 PASE 而不是 QSH 執行 SQL 查詢

如果我透過 ssh 進入 IBMi,然後啟動 qsh,我就可以運行db2 -S "SELECT * FROM LIB.SOMEPF"並取得結果。我無法從預設的 PASE 畫面執行此操作。我明白了

$ /usr/bin/db2
/usr/bin/db2: cannot execute

是否可以從 PASE 執行 sql 查詢而不是啟動 QSH?

答案1

我的主目錄中有一個 db2 shell 腳本。它已經在那裡很久了,我不知道它是什麼時候或如何到達那裡的。它可能是 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'它與此腳本一起運行一樣。

相關內容