CftClub.ru
Клуб специалистов ЦФТ-Банк

Глюк 12-го оракла как бороться ? ORA-02019: описание соедине

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеСр Окт 21, 2015 05:30   Глюк 12-го оракла как бороться ? ORA-02019: описание соедине Ответить с цитатой
Полезность: Нет оценки
Код:

type supercursor_type is
select c(max(c.INSTRUMENT_CODE))
        in sftw_instrument%rowtype
        where c.CFI = (select f(f.[CUR_SHORT]) in ::[FT_MONEY] all where f = ::[FT_MONEY]([CUR_SHORT]='RUB'))
        --where c.CFI = 'RUB'
;
supercursor supercursor_type;

begin
 select c(max(c.INSTRUMENT_CODE))
 in sftw_instrument%rowtype
 where c.[CFI] = (select f(f.[CUR_SHORT]) in ::[FT_MONEY] all where f=::[FT_MONEY]([CUR_SHORT]='RUB') )
 into maxinst;
 
 debug_pipe('Синонимы прошли!',0);
  k:=0;   
 for c in cursor supercursor
 loop
   debug_pipe('Курсор открыт',0);
 end loop;
end;


В чём прикол :
дебаг 'Синонимы прошли!' выводиться всегда ,
под пользователем НЕ IBS
на открытии курсора
for c in cursor supercursor
валиться с ошибкой
--ORA-02019: описание соединения для удаленной БД не найдено

, но если в описании курсора заменить
where c.CFI = (select f(f.[CUR_SHORT]) in ::[FT_MONEY] all where f = ::[FT_MONEY]([CUR_SHORT]='RUB'))
на
--where c.CFI = 'RUB'
то курсор успешно открывается.

p.s. В обоих вариантах курсор открывается если запускать операцию в навигаторе под IBS.
p.p.s. Возникло после перехода на 12-ый оракл...

аналогично с неявным курсором

Код:

for (select c(max(c.INSTRUMENT_CODE))
       in sftw_instrument%rowtype
       where c.CFI = (select f(f.[CUR_SHORT]) in ::[FT_MONEY] all where f = ::[FT_MONEY]([CUR_SHORT]='RUB'))
       --where c.CFI = 'RUB'
    )
 loop
   debug_pipe('Курсор открыт',0);
 end loop;



На ТЯ 7.4.4.2 проблема не повторилась.


Последний раз редактировалось: Alkov (Пт Окт 30, 2015 05:13), всего редактировалось 1 раз
prankster
Профи


Вступление в Клуб: 22.08.2014
СообщениеСр Окт 21, 2015 08:47   Re: Глюк 12-го оракла как бороться ? Ответить с цитатой
Полезность: Нет оценки
Смотрели во что транслируется?
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеСр Окт 21, 2015 09:30   Re: Глюк 12-го оракла как бороться ? Ответить с цитатой
Полезность: Нет оценки
prankster пишет:
Смотрели во что транслируется?


Да нормально транслируется,
Непонятно каким боком IBS влияет...
то ли то что доступ то ли то что владелец схемы где словарь лежит...

Код:

--#section EXECUTE
--# 6,2
            cache_mgr.write_cache;
         cache_mgr.write_cache;
            select  MAX(a1.INSTRUMENT_CODE)
            into MAXINST
            from SFTW_INSTRUMENT a1
            where a1.CFI = (
               select  b1.C_CUR_SHORT A$1
               from Z#FT_MONEY b1
               where b1.ID = 43353
            );
--# 11,2
      RTL.DEBUG_PIPE('Синонимы прошли!',0);
      K := 0;
      declare
         cursor c_obj is
            select  MAX(a1.INSTRUMENT_CODE) A$1
            from SFTW_INSTRUMENT a1
            where a1.CFI = (
               select  b1.C_CUR_SHORT A$1
               from Z#FT_MONEY b1
               where b1.ID = 43353
            );
         C   c_obj%rowtype;
      begin
            cache_mgr.write_cache;
         cache_mgr.write_cache;
         for plp$c_obj in c_obj loop
            C := plp$c_obj;
--# 19,2
            RTL.DEBUG_PIPE('Курсор открыт',0);
         end loop;
      end;
      return;
   end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru