Здравствуйте.
Пытаюсь вывести значения курсора из pl/sql блока Oracle
в pl-sql developer дает такой результат
SUBARU|24|9
AUDI|10|2
LADA|0|0
Итого|34|11
на Java пробую так, чтобы вывести значения хотя бы какого-то одного столбца.
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>" );
}
на этапе
while (cursorResultSet.next ())
{
out.println (cursorResultSet.getString(1));
}
возвращается ошибка NULL
Подскажите пожалуйста где ошибка и как ее решить?
p.s.
попробовал еще таким образом
Connection dbConnection = null;
CallableStatement callableStatement = null;
String getDBUSERByUserIdSql = "{call REPORTS.mi_inwork(?,?)}";
try {
dbConnection = getDBConnection(Driver_Class, Connection_URL, UserName, Password);
callableStatement = dbConnection.prepareCall(getDBUSERByUserIdSql);
callableStatement.setString(1, "Итого");
callableStatement.registerOutParameter(2, OracleTypes.CURSOR);
// callableStatement.registerOutParameter(3, java.sql.Types.VARCHAR);
// callableStatement.registerOutParameter(4, java.sql.Types.DATE);
// execute getDBUSERByUserId store procedure
callableStatement.executeUpdate();
String Name = callableStatement.getString(1);
String CountRequest1 = callableStatement.getString(2);
///Date createdDate = callableStatement.getDate(4);
System.out.println("Name : " + Name);
System.out.println("CountRequest1 : " + CountRequest1);
// System.out.println("CreatedDate : " + createdDate);
} catch (SQLException e) {
//System.out.println(e.getMessage());
out.println( "<h1>exception: "+e.getMessage()+"</h1>" );
} finally {
if (callableStatement != null) {
callableStatement.close();
}
if (dbConnection != null) {
dbConnection.close();
}