Получить поля курсора в виде массива

chameleon82
Дата: 10.03.2011 14:38:17
День добрый. Возникла следующая нетривиальная задачка. Через pl/sql нужно получить список столбцов из курсора, как это можно сделать? Еще желательно получить не только имя поля и его порядковый номер, но и тип поля. Как это можно сделать?
Курсор задается только так:
DECLARE 
CURSOR cur IS 
SELECT T1, T2, T3
FROM TABLE;
Begin
...
End;
env
Дата: 10.03.2011 14:39:19
chameleon82,

dbms_sql
AlexFF__|
Дата: 10.03.2011 14:39:24
chameleon82
Дата: 10.03.2011 14:48:54
AlexFF__|
http://www.sql.ru/forum/actualthread.aspx?tid=834458

declare
   курсор sys_refcursor;
   текст xmltype;
begin
   open курсор for select level id, dummy str from dual connect by level<=3;
   текст := xmltype.createXML(курсор);
   dbms_output.put_line(текст.getClobVal());
end;



Это почти то, что мне надо, но есть одно но - если курсор не возвращает ни одной строки - я не смогу получить список столбцов, а его мне надо получить в любом случае.

dbms_sql - сразу нет, использование его в моей задаче невозможно (
chameleon82
Дата: 11.03.2011 11:43:01
Парсит же как-то оракл столбцы селекта, наверняка должны быть и интсрументы?
env
Дата: 11.03.2011 12:13:56
chameleon82,

dbms_sql
--Eugene--
Дата: 11.03.2011 12:23:12
chameleon82
Парсит же как-то оракл столбцы селекта, наверняка должны быть и интсрументы?
DBMS_SQL.DESCRIBE_COLUMNS
chameleon82
Дата: 11.03.2011 13:25:56
env
chameleon82,

dbms_sql


Может тогда подскажете, как преобразовать явный курсор в курсор формата dbms_sql ?
Сергей Арсеньев
Дата: 11.03.2011 13:47:23
chameleon82,

Можно, наверное, попробовать передать в яву, там в ResultSet и getMetaData().
env
Дата: 11.03.2011 13:49:05
chameleon82,

dbms_sql.to_cursor_number