О ref cursor и получении его атрибутов
Shtock
Дата: 21.12.2012 15:47:25
Sayan Malakshinov
Дата: 21.12.2012 15:50:34
Shtock,
Если про одно поле, то можно. Например, с помощью xmlsequence
-2-
Дата: 21.12.2012 15:52:46
Shtock,
атрибуты можно получить в oci/jdbc или, если только имена колонок и в нагрузку данные, - xmltype(cursor)
Shtock
Дата: 21.12.2012 15:53:18
Мне нужно получить весь список полей ref-cursora и их типы данных имея как входной параметр ref cursor, а так как в зависимости от входных параметров кол-во полей может быть разным, то пока куда копать в 10-ке тупо не ясно. а как я понял - тупо не возможно.
А в чём суть иде про xmlsequence или оно работает только если реф-курсор из одного поля?
Sayan Malakshinov
Дата: 21.12.2012 16:18:21
Shtock,
идея та же, что и
-2- |
---|
только имена колонок и в нагрузку данные, - xmltype(cursor) |
тип данных с помощью xmlsequence не получить. Я вообще говорил только про select-a-specific-column-from-a-ref-cursor
Shtock
Дата: 21.12.2012 16:21:28
Типы данных - фиг с ними. МОжно всё вывести как строки... Попробую сейчас.
Shtock
Дата: 21.12.2012 16:28:31
Попытался сделать что-то типа
declare
c sys_refcusor;
x xmltype;
begin
c := my_uber_Function(<set of parameters>);
x := xmltype(c);
end;
В итоге оно вывалилось с ошибкой ora-06502 VAlue or numeric error at sys.xmltype line 344 и что с этим делать - неясно.
Shtock
Дата: 21.12.2012 16:48:01
Сделал полу-ректально используя магию:
ctx := dbms_xmlgen.newContext (с);
x:= dbms_xmlgen.getXMLType (ctx);
dbms_xmlgen.closeContext (ctx);
где ctx - dbms_xmlgen.ctxHandle
Shtock
Дата: 21.12.2012 18:27:11
Блин, похоже эти методы тупо где-то проглатывают исключения. XML тупо пустой...
orawish
Дата: 21.12.2012 19:35:13
Shtock,
1)любой клиент оракловый (от веку) владеет интерфейсом для извлечения сабж. из курсора
2) пощите пакет sys.dbms_metadata_util - вероятно, его на 10g нет еще, но вдруг есть?