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

ANALYTIC(LISTAGG(m.short_name, ', ') - не работает?

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


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 08:45   ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
в PLPLUS - представлении пытаюсь написать:

, ANALYTIC(LISTAGG(m.short_name, ', '), 'WITHIN GROUP (order by null)') : oper_list

- компилятор рунается.
Подскажите ANALYTIC(LISTAGG - не реализована?
Amper
Профи


Вступление в Клуб: 29.10.2010
СообщениеВт Июл 08, 2014 09:25   Re: ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
в PLPLUS - представлении пытаюсь написать:

, ANALYTIC(LISTAGG(m.short_name, ', '), 'WITHIN GROUP (order by null)') : oper_list

- компилятор рунается.
Подскажите ANALYTIC(LISTAGG - не реализована?

Вроде вот так лечится:

Код:
select x( x%rowtype )
in (
      select m
      (
         ANALYTIC(LISTAGG(m.short_name, ', '), 'WITHIN GROUP (order by null)') : oper_list
      )
      in ::[YOUR_TYPE]
   );
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 09:40   Re: ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
Amper пишет:
Вроде вот так лечится:

уф...утомил меня LISTAGG - и времени сейчас на него нету.
А как-нить вставку pl/sql в pl/plus-представлении сделать можно?
"-- begin pl/sql " - на это тоже ругается.

вот текст ошибки, если вдруг разбираться надумаете:

Код:
ORA-20300: APP-PL/PLUS: PLP-NOT_CLASS_COMPONENT: У типа [OBJECT] нет реквизита или операции [LISTAGG]

ORA-06512: на  "COMP.MESSAGE", line 58

ORA-06512: на  "COMP.DATA_VIEWS", line 1001

ORA-06512: на  "COMP.DATA_VIEWS", line 1285

ORA-06512: на  line 1


begin  COMP.Data_Views.Create_Vw_Crit(:crit_id, fals
[/code]
Amper
Профи


Вступление в Клуб: 29.10.2010
СообщениеВт Июл 08, 2014 10:00   Re: ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
Что-то я не понял.
У меня вот такое представление прекрасно работает (при установленном флаге "Не добавлять ID").



У Вас нет? Можно полный текст Вашего представления?
Reddom
Участник со стажем


Вступление в Клуб: 25.01.2013
СообщениеВт Июл 08, 2014 10:11    Ответить с цитатой
Полезность: 1
В РБО listagg нету. Можно sql вставку сделать в фигурных скобках ({}).
В ИБСО listagg должно быть. Версия??
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 10:13   Re: ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
Amper пишет:
Можно полный текст Вашего представления?

Например, такое не работает - для тестов:

Код:
pragma pl_sql(true);
type main is
   select distinct m(    
      max(mp.method_id) : ID
      , mp.short_name   : mp_short_name
      , mp.class_id   : mp_class_id
      , mp.name       : mp_name
      , ANALYTIC(LISTAGG(m.short_name, ', '), 'WITHIN GROUP (order by null)') : oper_list
   )   
   in methods%rowtype
   , (method_parameters%rowtype : mp)
   
   ALL
   where
      mp.method_id    = m.id
   group by            
       mp.short_name
      , mp.class_id   
      , mp.name       
   ;
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 10:16    Ответить с цитатой
Полезность: Нет оценки
Reddom пишет:
В РБО listagg нету. Можно sql вставку сделать в фигурных скобках ({}).
В ИБСО listagg должно быть. Версия??


А как в скобках - можно пример?
Версия у нас:

Версия 6.0.115.60
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0
Amper
Профи


Вступление в Клуб: 29.10.2010
СообщениеВт Июл 08, 2014 10:17   Re: ANALYTIC(LISTAGG(m.short_name, ', ') - не работает? Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
Например, такое не работает - для тестов:

Похоже, что у Вас какая-то другая платформа/версия. В ИБСО это работает.
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 10:45    Ответить с цитатой
Полезность: Нет оценки
Reddom пишет:
В РБО listagg нету. Можно sql вставку сделать в фигурных скобках ({}).
В ИБСО listagg должно быть. Версия??

вставкой получилось сделать.

Код:
, { LISTAGG(d1.SHORT_NAME , ', ') WITHIN GROUP (order by null) }
Reddom
Участник со стажем


Вступление в Клуб: 25.01.2013
СообщениеВт Июл 08, 2014 11:11    Ответить с цитатой
Полезность: Нет оценки
Значит РБО Smile Рад, что получилось.
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеВт Июл 08, 2014 11:42    Ответить с цитатой
Полезность: Нет оценки
Reddom пишет:
Значит РБО Smile Рад, что получилось.

не....не РБО, наверное.
У нас 'Центр начисления' - коммунальные платежи начисляем.
Это примочка к системе 'ГОРОД'

Код:
Приложения:
"ЦФТ-Центр начислений" Версия 1.0
"ЦФТ - Платформа Развития" Версия 7.1.2
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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