DashDB - Экспорт данных с использованием Java

Я использую 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 ответа

Команда EXPORT выполняется в dashDB и экспортирует файл в каталог, локальный для сервера dashDB. Поэтому, если вы хотите использовать EXPORT, вам потребуется дополнительный шаг для загрузки файла. Один из способов сделать это - использовать REST API здесь: https://developer.ibm.com/clouddataservices/wp-content/themes/projectnext-clouddata/dashDB/ (GET call to / home /... endpoint). Другой способ - использовать команду CLPPlus IDA: https://www.ibm.com/support/knowledgecenter/SS6NHC/com.ibm.swg.im.dashdb.clpplus.doc/doc/r0061925.html

Вот более конкретная процедура, которую я успешно проверил:

  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"

Другие вопросы по тегам