Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DISTINCT ломает запрос , почему ? / 9 сообщений из 9, страница 1 из 1
26.07.2019, 14:13
    #39841909
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
Так работает
Код: plsql
1.
2.
3.
4.
5.
DECLARE
  v  sys.odcinumberlist;
BEGIN
  SELECT sys.odcinumberlist()   INTO v FROM dual;
END;




А так - нет
Код: plsql
1.
2.
3.
4.
5.
DECLARE
  v  sys.odcinumberlist;
BEGIN
  SELECT DISTINCT sys.odcinumberlist()   INTO v FROM dual;
END;



Код: plaintext
1.
ORA-00932: несовместимые типы данных: ожидается -, получено SYS.ODCINUMBERLIST

--------------------------------------------------------------
Запомните, товарищи офицеры, чтобы ничего не делать, надо уметь делать все.
...
Рейтинг: 0 / 0
26.07.2019, 14:28
    #39841923
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
Мозг либо есть, либо его нет. Третьего не дано.
...
Рейтинг: 0 / 0
26.07.2019, 14:35
    #39841933
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
ElicМозг либо есть, либо его нет. Третьего не дано.
либо он есть, но его нет ))
...
Рейтинг: 0 / 0
26.07.2019, 14:41
    #39841937
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
Че, тоже день сисадмина празднуешь?

А у нас, как обычно, еще наверняка и репетиция салюта к дню ВМФ
Лет 10-15 назад мы каждый день сисадмина на бережку с салютом встречали
Потом постарели
...
Рейтинг: 0 / 0
26.07.2019, 14:56
    #39841950
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
ElicМозг либо есть, либо его нет. Третьего не дано.

Спасибо за столь глубокий и содержательный ответ.

Однако в документации нашел только ограничения на LOB типы при использовании DISTINCT.
* You cannot specify DISTINCT if the select_list contains LOB columns.

Что это же ограничение распространяется на любые небазовые типы - неочевидно.
...
Рейтинг: 0 / 0
26.07.2019, 15:00
    #39841954
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
anvano,

1. Не используй VARRAY. Испoльзуй NESTED TABLE.
2. Медитируй над тем что есть DISTINCT и что есть SET.

SY.
...
Рейтинг: 0 / 0
26.07.2019, 15:10
    #39841963
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
sys.odcinumberlist - это же коллекция, что Вы хотели сделать запросом-то?
...
Рейтинг: 0 / 0
26.07.2019, 15:24
    #39841972
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
Код: plsql
1.
CREATE TYPE  tt_num IS TABLE OF NUMBER;




Есть некий локальный ассоциативный массив, в котором одно из полей - вышеописанная nested table
Для примера вот массив с тремя полями - реально их пара десятков.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE
   TYPE  typ_rec IS RECORD(
      val1  NUMBER,
      val2  NUMBER,
      tbl   TT_NUMBER
   );
   TYPE typ_tbl IS TABLE OF typ_rec INDEX BY BINARY INTEGER;
   t_array  typ_tbl ;
BEGIN
   ....
END;



Есть некий курсор, возвращающий все поля как в ассоциативном массиве, кроме поля имеющего тип NESTED TABLE

Я хотел сделать BULK COLLECT из данного курсора в объявленный ассоциативный массив, без объявления отдельного массива без табличного поля, и перекладывания потом данных из одного массива в другой.
Для этого просто добавил в курсор вызов пустого конструктора типа для nested table.

Всё работало, пока не понадобилось сделать DISTINCT. Ну нельзя так нельзя, сделал вместо DISTINCT группировку по нужным полям, просто писанины больше.
...
Рейтинг: 0 / 0
26.07.2019, 18:12
    #39842041
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DISTINCT ломает запрос , почему ?
anvano,

From dual - Это сколько строк, тормоз?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DISTINCT ломает запрос , почему ? / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]