java - as400 acsbundle.jar IBM
问题描述
我正在研究 AS400。我对这个工具完全陌生。
当我启动IBM 工具界面时,我可以单击一个链接来启动另一个允许我执行 SQL 脚本的窗口。
然后我可以执行 1 个命令,然后执行一个 SQL 请求。
第一个命令(根据我的理解)允许我过滤数据,而第二个命令是一个基本的 SQL 请求。
我希望能够直接在命令行中使用 jar执行这 2 个命令。
我试图做如下:
java -jar /Applications/IBMiAccess/acsbundle.jar /plugin=rmtcmd /cmd="call myLib/myProg '20200706 20200708 10047'" /system=my.ip.address
java -jar /Applications/IBMiAccess/acsbundle.jar /plugin=cldownload /system=my.ip.address /clientfile=/Users/MYUSERNAME/Downloads/test.xlsx /sql="SELECT * FROM MYDB.MYTABLE" /userid=MYUSERID
第一个命令说:程序已正确执行,但是当我尝试下载结果(使用第二个命令)时,它不是预期的......更糟糕的是,我什至可以在没有任何参数的情况下执行程序,它说程序已执行一般。当我打开我的文件时,它只给我当天的数据:/
因此,如果有人可以帮助我,将不胜感激!非常感谢 :)
解决方案
我找到了 2 个解决方案:
第一个是使用插件 rss。如果没有人可以帮助您了解以前的 lib / prog 到底是做什么的,那么您可以这样做:
for indexArray in "${!ips[@]}"
do
nameFile="${workingFolder}""${warehouse[$indexArray]}".csv
java -jar $pathIBM/acsbundle.jar /system="${ips[$indexArray]}" /plugin=logon /USERID=${USERNAME} /PASSWORD=${PASSWORD}
java -jar $pathIBM/acsbundle.jar /system=${ips[$indexArray]} /plugin=rss /sql="CALL MY_LIB.MY_PROG(${date28DaysAgos}, ${todayDate},${store})" /autorun=1 &
pid=$!
sleep 30
kill -9 $pid
java -jar $pathIBM/acsbundle.jar /plugin=cldownload /system="${ips[$indexArray]}" /clientfile="${nameFile}" /sql="SELECT * FROM MYDB.MYTABLE" /userid=${USERNAME}
done
基本上,此解决方案允许您使用 rss 插件。根据您的库的执行时间(CALL MYPROG.MYLIB
您应该sleep
在终止进程之前增加时间。
下一个解决方案,当然更干净,将是有一个很好的 SQL 请求,你知道你需要什么,然后:
for indexArray in "${!ips[@]}"
do
nameFile="${workingFolder}""${warehouse[$indexArray]}".csv
java -jar $pathIBM/acsbundle.jar /system="${ips[$indexArray]}" /plugin=logon /USERID=${USERNAME} /PASSWORD=${PASSWORD}
java -jar $pathIBM/acsbundle.jar /plugin=cldownload /system="${ips[$indexArray]}" /clientfile="${nameFile}" /sql="${sql}" /userid=${USERNAME}
done
推荐阅读
- c - 用于可变宽度访问的类型转换数组
- amazon-emr - EMR prestoSQL 343:java.lang.IllegalStateException:验证器未加载错误
- javascript - 使用 ES6 Proxy 懒加载资源
- python - 如何通过在python中搜索分配给一个键的多个值来获得一个键?
- php - 如何在 WordPress 子主题中包含 WP-Query 类?
- mysql - 将 Mysql 列从 Time 修改为 Integer ( seconds ) 将时间值转换为秒
- scala - 使用另一个 ArrayType 列的 Spark 动态列访问
- java - 在 spring webclient 调用中获取一些 httpHeader
- lightningchart - 如何更改图例框条目和图表标题的字体大小和颜色
- database - 如何以多步骤形式保存数据库中的每一步 symfony 4