如果我透過 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'
它與此腳本一起運行一樣。