powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DISTINCT ломает запрос , почему ?
9 сообщений из 9, страница 1 из 1
DISTINCT ломает запрос , почему ?
    #39841909
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так работает
Код: 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
DISTINCT ломает запрос , почему ?
    #39841923
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мозг либо есть, либо его нет. Третьего не дано.
...
Рейтинг: 0 / 0
DISTINCT ломает запрос , почему ?
    #39841933
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicМозг либо есть, либо его нет. Третьего не дано.
либо он есть, но его нет ))
...
Рейтинг: 0 / 0
DISTINCT ломает запрос , почему ?
    #39841937
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че, тоже день сисадмина празднуешь?

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

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

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

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

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

SY.
...
Рейтинг: 0 / 0
DISTINCT ломает запрос , почему ?
    #39841963
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys.odcinumberlist - это же коллекция, что Вы хотели сделать запросом-то?
...
Рейтинг: 0 / 0
DISTINCT ломает запрос , почему ?
    #39841972
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
DISTINCT ломает запрос , почему ?
    #39842041
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

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


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