DashDB - 使用Java导出数据

时间:2016-08-23 17:48:57

标签: export ibm-cloud dashdb

我正在使用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做的事情? 如果答案是肯定的。你有什么建议吗? 谢谢!!!

2 个答案:

答案 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)

以下是我成功验证的更具体的程序:

  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"

  2. 使用合格的输出目录运行EXPORT命令(例如在clpplus中):

    export to /mnt/blumeta0/home/<user>/files/out.del of del select * from <your table>;

  3. 下载输出文件:

    curl --user "<user>:<password>" -X GET "https://<server>:8443/dashdb-api/home/files/out.del"