Получение ??? вывод из dbms_output.get_lines с использованием JDBC - PullRequest
0 голосов
/ 09 мая 2020

Согласно этому вопросу: Получение вывода из dbms_output.get_lines с использованием JDB C

Я использовал код:

try (Statement s = conn1.createStatement()) {

    try {
        s.executeUpdate("begin dbms_output.enable(); end;");
        s.executeUpdate("begin dbms_output.put_line('abc'); end;");
        s.executeUpdate("begin dbms_output.put_line('hello'); end;");
        s.executeUpdate("begin dbms_output.put_line('so cool'); end;");

        try (CallableStatement call = conn1.prepareCall(
            "declare "
          + "  num integer := 1000;"
          + "begin "
          + "  dbms_output.get_lines(?, num);"
          + "end;"
        )) {
            call.registerOutParameter(1, java.sql.Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
            call.execute();

            Array array = null;
            try {
                array = call.getArray(1);
                System.out.println(Arrays.asList((Object[]) array.getArray()));
            }
            finally {
                if (array != null)
                    array.free();
            }
        }
    }
    finally {
        s.executeUpdate("begin dbms_output.disable(); end;");
    }
}

но получил в результате :

[???, ???, ???, null]

когда я должен был получить:

[abc, hello, so cool, null]

В чем может быть причина этого и как это можно исправить?

1 Ответ

0 голосов
/ 09 мая 2020

Включение orai18n.jar в библиотеки проекта решило эту проблему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...