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

Откуда:
Сообщений: 3
Требуется обьявить переменную в функции, значение которой функция будет возвращать. Проблема в том, что тип этой переменной создается в теле этой же функции.
Тоесть сначала идет блок declare
function RT(...) return matrix_tab2 pipelined is
mytype tempt;
, после чего создаем тип

  
head_tmp:='CREATE OR REPLACE TYPE STAT.TEMPT AS OBJECT (';
  for i in 1 .. l_hdr.no_fields loop
    head_tmp:=head_tmp ||substr(l_flds(i).Name,1,3) || ' varchar2('|| l_flds(i).length||'), ';  --translate(l_flds(i).Name,'_'||chr(0)||chr(136)||chr(89)||chr(171)||chr(4)||chr(124)||chr(36)||chr(128),'_')
  execute IMMEDIATE 'CREATE OR REPLACE TYPE STAT.TEMPT AS OBJECT (.................)';
Дальше эту переменную инициализирую и возвращаю функцией
       execute immediate 'declare begin :qwe := tempt('...строка с параментрами...' using out mytype; --на этой строке получаю "ORA-00902: неверн.тип данных"
    pipe row (mytype);

Каким образом можно обойти эту проблему. Спасибо
13 окт 11, 19:22    [11437106]     Ответить | Цитировать Сообщить модератору
 Re: Обьявление переменной в функции после создания типа  [new]
Elic
Member

Откуда:
Сообщений: 29976
TRIPS
тип этой переменной создается в теле этой же функции.
Это шутка?
Или полнейшее непонимание основ? С которым лезть в динамику и табличные функции противопоказано.
13 окт 11, 19:32    [11437136]     Ответить | Цитировать Сообщить модератору
 Re: Обьявление переменной в функции после создания типа  [new]
ALocky
Member

Откуда: Понаехал из Подмосковья
Сообщений: 747
TRIPS
Каким образом можно обойти эту проблему

- Доктор, когда я делаю вот так, у меня вот тут болит.
- Не делайте так.
14 окт 11, 09:20    [11438808]     Ответить | Цитировать Сообщить модератору
 Re: Обьявление переменной в функции после создания типа  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6700
TRIPS,

Ух ты, я тоже так хочу! А можно я у вас по такому алкогоритму возьму пару миллиардов под расписку, которую может быть напишу после получения денег?

Не проще ли будет сериализовать в xml и уже отттуда тащить всё, что вам нужно? Это не сложнее вашего заёба подхода, главное не обсериализоваться.
14 окт 11, 10:04    [11438975]     Ответить | Цитировать Сообщить модератору
 Re: Обьявление переменной в функции после создания типа  [new]
TRIPS
Member

Откуда:
Сообщений: 3
Спасибо, друзья)) Таких ответов точно не ожидал)
14 окт 11, 13:35    [11440753]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить