Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Народ, правильно ли я понял, что в 10-м оракле не получится получить атрибуты реф-курсора (например по http://stackoverflow.com/questions/10321571/oracle-select-a-specific-column-from-a-ref-cursor) хотя бы потому, что в 10-м дмбс_скул нет dbms_sql.to_cursor_number?
21 дек 12, 15:47    [13666802]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Shtock,

Если про одно поле, то можно. Например, с помощью xmlsequence
21 дек 12, 15:50    [13666838]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
-2-
Member

Откуда:
Сообщений: 15330
Shtock,

атрибуты можно получить в oci/jdbc или, если только имена колонок и в нагрузку данные, - xmltype(cursor)
21 дек 12, 15:52    [13666871]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Мне нужно получить весь список полей ref-cursora и их типы данных имея как входной параметр ref cursor, а так как в зависимости от входных параметров кол-во полей может быть разным, то пока куда копать в 10-ке тупо не ясно. а как я понял - тупо не возможно.

А в чём суть иде про xmlsequence или оно работает только если реф-курсор из одного поля?
21 дек 12, 15:53    [13666876]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Shtock,

идея та же, что и
-2-
только имена колонок и в нагрузку данные, - xmltype(cursor)

тип данных с помощью xmlsequence не получить. Я вообще говорил только про select-a-specific-column-from-a-ref-cursor
21 дек 12, 16:18    [13667138]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Типы данных - фиг с ними. МОжно всё вывести как строки... Попробую сейчас.
21 дек 12, 16:21    [13667165]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Попытался сделать что-то типа

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 и что с этим делать - неясно.
21 дек 12, 16:28    [13667221]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Сделал полу-ректально используя магию:

   ctx := dbms_xmlgen.newContext (с);
   x:= dbms_xmlgen.getXMLType (ctx);
   dbms_xmlgen.closeContext (ctx);


где ctx - dbms_xmlgen.ctxHandle
21 дек 12, 16:48    [13667408]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Блин, похоже эти методы тупо где-то проглатывают исключения. XML тупо пустой...
21 дек 12, 18:27    [13668018]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Shtock,

1)любой клиент оракловый (от веку) владеет интерфейсом для извлечения сабж. из курсора
2) пощите пакет sys.dbms_metadata_util - вероятно, его на 10g нет еще, но вдруг есть?
21 дек 12, 19:35    [13668378]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Глубина глубин была проверить пашет ли что-нибудь до того, как разработчикам клиентской части пакет отдавать...
24 дек 12, 12:00    [13675991]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Походу дело не в этом вообще. У меня есть такая штука

open pRefCursor for 'select id <тут куча полей> from address where id in (select * from table(:a))' using lTblNumber; похоже данная штука тупо не возвращает ничего, хотя в lTblNumber (table of number) есть записи и в address для них тоже есть. Странно, что в рантайме не ругнулось. Неужто придется lTblNumber фигарить как список значений через запятую....
24 дек 12, 12:20    [13676140]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
Блин, херь. Возможно и работает. Взял значения из lTblNumber, положил их во временную таблицу и теперь в in делаю селект из временной таблицы. Всё равно записей нет. Такое ощущение, что на сложных селектах у генератора xml из курсора срывает мозг с проглатыванием исключения...
24 дек 12, 12:28    [13676195]     Ответить | Цитировать Сообщить модератору
 Re: О ref cursor и получении его атрибутов  [new]
Shtock
Member

Откуда: СПб
Сообщений: 3049
dbms_metadata_util а этого в 10-ке нет. Ладно, отдам народу как есть. Будем надеяться, что всё будет хорошо, хотя конечно тоскливо, что xml-генератор так плох.
24 дек 12, 12:35    [13676235]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить