Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывести значения курсора из хранимой процедуры Oracle / 3 сообщений из 3, страница 1 из 1
22.12.2016, 12:34
    #39372771
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести значения курсора из хранимой процедуры Oracle
Здравствуйте.

Пытаюсь вывести значения курсора из хранимой процедуры Oracle

в pl-sql developer дает такой результат

Код: plsql
1.
2.
3.
4.
SUBARU|24|9
AUDI|10|2
LADA|0|0
Итого|34|11



на Java пробую так, чтобы вывести значения хотя бы какого-то одного столбца.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
try
{
	final Connection c = DriverManager.getConnection(Connection_URL, user, password);

        plsql="DECLARE\n" +
"  v_ref  SYS_REFCURSOR;\n" +
"  v_prt varchar2(20) default 'Итого' ;\n" +
"BEGIN\n" +
"    REPORTS.mi_inwork(v_prt, v_ref);\n" +
"   \n" +
"? := v_ref;\n" +
"END;";

        CallableStatement cs = c.prepareCall(plsql);
        cs.registerOutParameter(1, OracleTypes.CURSOR);
        cs.execute();

        ResultSet cursorResultSet = (ResultSet) cs.getObject(1);

        while (cursorResultSet.next ())
        {
           out.println (cursorResultSet.getString(1));
        }
        cs.close();
        c.close();
	}
catch (Exception e) {
out.println( "<h1>exception: "+e.getMessage()+"</h1>" );
}



на этапе

Код: java
1.
2.
3.
4.
        while (cursorResultSet.next ())
        {
           out.println (cursorResultSet.getString(1));
        }



возвращается ошибка NULL

Подскажите пожалуйста где ошибка и как ее решить?
...
Рейтинг: 0 / 0
22.12.2016, 12:39
    #39372776
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести значения курсора из хранимой процедуры Oracle
...
Рейтинг: 0 / 0
22.12.2016, 15:27
    #39373050
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести значения курсора из хранимой процедуры Oracle
Рабочий вариант будет выглядеть так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Connection conn = null;
CallableStatement stmt = null;
ResultSet rset = null;

String SOME_NAME = "{call REPORTS.mi_inwork(?,?)}";

  try {
        conn = DriverManager.getConnection(Connection_URL,UserName, Password);

            stmt = conn.prepareCall(SOME_NAME);//We have declared this at the very top
        stmt.setString(1, "Итого");//Passing CompanyID here
        stmt.registerOutParameter(2, OracleTypes.CURSOR);//Refcursor selects the row based upon query results provided in Package.
        stmt.execute();
        rset = (ResultSet) stmt.getObject(2);

        while (rset.next()) {
            out.println(rset.getString(1)+" | "+ rset.getString(2)+" | "+ rset.getString(3));
}
} catch (Exception e) {
     //   LOGGER.error("Error extracting ", e);
        out.println( "<h1>exception: "+e.getMessage()+"</h1>" );
} finally {
     //   DBUtils.cleanUp(conn, stmt, rset);
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывести значения курсора из хранимой процедуры Oracle / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]