Сводная метка столбца XML и Java - PullRequest
1 голос
/ 01 марта 2012

У меня есть хранимая процедура в моей базе данных, которая содержит сводную инструкцию.

create or replace procedure example1(var1 OUT SYS_REFCURSOR) 
is
DATE_FROM date;
DATE_TO date;
begin
  DATE_TO := sysdate;
  DATE_FROM := sysdate -10;
  open var1 for
    select *
    from
    ( select m as MONTHS, s as SERIES, SUM(t) as N
      from tablename
      WHERE dateletter BETWEEN date_from AND date_to
      group by m, s
      ORDER BY m
    )
   PIVOT XML (SUM(N) as TOTALSUM for SERIES in (select distinct s from tablename where dateletter between date_from and date_to group by s));
END example1;

Это прекрасно работает, и это показывает что-то вроде этого

Month SERIES_XML

  2   oracle.jdbc.driver.ORACLESQLXML@d77ww5

Сейчас в моем классе Java

CallableStatement acs1;
acs1 = generalcon.con.prepareCall(getCursor);
acs1.registerOutParameter(1, OracleTypes.CURSOR);
acs1.executeQuery();
ars1 = (ResultSet) acs1.getObject(1);
while(ars1.next())
{
  String ser = ars1.getString(2);
  xmlst      = xmlst + ser;

}

Однако ars1.getString(2) возвращает нулевое значение, где 1 - это ColumnIndex
Я пытался с ars1.getString('SERIES_XML'), но тот же результат.

Можете ли вы помочь мне получить правильное имя столбца и соответствующее значение, пожалуйста

1 Ответ

0 голосов
/ 08 ноября 2018

Я не знаю, если у вас все еще есть эта проблема, в последнее время у меня то же самое, и это помогает мне получить все столбцы в ResultSet:

ResultSetMetaData rsmd = result.getMetaData();
int columnCount = rsmd.getColumnCount();

// The column count starts from 1
for (int j = 1; j <= columnCount; j++) {
    System.out.println(rsmd.getColumnName(j) + " - " + rsmd.getColumnType(j) + " - " + rsmd.getColumnTypeName(j));
}

Пока!

...