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

Пытаюсь вывести значения курсора из хранимой процедуры 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
Вывести значения курсора из хранимой процедуры Oracle
    #39372776
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вывести значения курсора из хранимой процедуры Oracle
    #39373050
drno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рабочий вариант будет выглядеть так

Код: 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
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывести значения курсора из хранимой процедуры Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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