我正在使用DashDB(Bluemix服务),我需要在我的Java代码中导出表数据。为此,我写了以下内容......
String sql = "CALL SYSPROC.ADMIN_CMD(?)";
callStmt1 = conn.prepareCall(sql);
query = "export to exportData.IXF of IXF select * from nombres";
callStmt1.setString(1, query);
callStmt1.execute();
rs1 = callStmt1.getResultSet();
但它不起作用。未生成文件exportData.ixf,但我没有收到任何错误代码。我曾经在DB2上执行此代码。你知道我是否有可能做我正在用DashDB做的事情? 如果答案是肯定的。你有什么建议吗? 谢谢!!!
答案 0 :(得分:2)
EXPORT命令在dashDB中运行,并将文件导出到dashDB服务器本地的目录。因此,如果您想使用EXPORT,则需要一个额外的步骤来下载文件。一种方法是在这里使用REST API:https://developer.ibm.com/clouddataservices/wp-content/themes/projectnext-clouddata/dashDB/(GET调用/ home / ...端点)。另一种方法是使用CLPPlus IDA命令:https://www.ibm.com/support/knowledgecenter/SS6NHC/com.ibm.swg.im.dashdb.clpplus.doc/doc/r0061925.html
答案 1 :(得分:1)
以下是我成功验证的更具体的程序:
使用/rscript
端点在用户主目录中创建可写目录:
curl --user "<user>:<password>" -H "Content-Type: application/json" -d "{\"rScript\" : \"system('mkdir files;chmod 777 files')\"}" -X POST "https://<server>:8443/dashdb-api/rscript"
使用合格的输出目录运行EXPORT
命令(例如在clpplus中):
export to /mnt/blumeta0/home/<user>/files/out.del of del select * from <your table>;
下载输出文件:
curl --user "<user>:<password>" -X GET "https://<server>:8443/dashdb-api/home/files/out.del"