powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить строку таблицы где 1 значение максимально
18 сообщений из 43, страница 2 из 2
Получить строку таблицы где 1 значение максимально
    #40026513
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
тихо работает, но неполно (неправильно),

со звёздочкой куда вероятнее ))
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026516
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
Stax,

ну, andrey_anonymous намекал на замену последовательности полей.
Представь, что это view - там это много более вероятно.
Если переставленные поля совместимы по типу - так и будут мусор в данных получать годами.
"Заметят" случайно, после ареста счетов налоговой инспекцией.


видел я про переставленные поля
но я себе не представляю такое в реале

встречал и другое, в "name" хранили "сумму" (ето чтоб не создавать еще одну колонку)

.....
stax
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026519
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять же, всё зависит от задачи.

Если уж нужна полноценная копия, то и средства надо выбирать соответствующие, вплоть до внешних механизмов репликации типа GG. Для разового выполнения через CTAS where 1=0 + insert /*+ append */ select * - звёздочка допустима (при отсутствии виртуальных колонок и подобных ограничений).
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026522
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

ну, пусть не "переставленные", а просто добавлили поле в "середину".
Вроде - работали с суммами в одной валюте, а потом надо добавить валюту,
и, чтобы "красиво" читалось, рядом с суммой конечно.
Или, еще лучше, долю от первой суммы, и, из тех же соображений, вставить ее между первой суммой и следующей за ней.

А дальше все это уходит на такого клиента, который имеет манеру обращаться к содержимому по номеру поля в результате.
Накреативить-по по лени - двигателю прогресса, можно немало.

Звездочка - обычно и ложный и дорогой интерфейс, как в сопровождении, так и в смысле скорости.
случаи всякие бывают, но каждый из них специальный.
sql - вообще плохо живет в качестве абстрактного интерфейса за очень узкими рамками
алгоритмов работы с множествами, которыми сам разработчик обычно, если вообще рулит,
то только хинтами.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026524
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Натыкался на вариант заливки исторических данных в таблицу созданную по последнему состоянию из модели данных. Там был косяк архитектора - поля в модель добавлялись "как красивше", в отличие от таблицы в которую они добивались альтером в конец списка.

И ведь даже отработало
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026527
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
вплоть до внешних механизмов репликации типа GG


в старых версия GG был очень дорогой

в нас используют, и не без проблем

ps
шоб понятно было, я за ПОЛНОЕ перечисление полей

но, лентяйство созблазняет звездочкой

.....
stax
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026530
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby

А дальше все это уходит на такого клиента, который имеет манеру обращаться к содержимому по номеру поля в результате.
Накреативить-по по лени - двигателю прогресса, можно немало.


поменяли структуру, будьте готовы что аукнется, и не только из-за * и dbms_sql (по номеру поля)

.....
stax
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026533
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax
НеофитSQL,

Aybo "мешала" колонка rn, Вам она чем мешает?

.....
stax


У меня сейчас нет конкретной задачи, где колонка мешает.

Из прошлых задач, я делал промежуточную группировку/фильтрацию данных из 100500 колонок, где критерий фильтрации был основан на двух-трех из них. Акт фильтрации определен что %ROWTYPE на входе и выходе совпадает, иначе это не фильтрация а преобразование в другой формат, без чистого пути обратно.

Пока у меня все подмножества данной таблицы одного типа, я могу легко с ними работать. Хочу - union, хочу - intersect.
То, что перестановка или добавление/удаление колонок не потребует переделки моего кода, это бонус. Я пишу код так, чтоб не отбирал у меня потом у меня времени по пустякам.

Неочевидность (для меня) как сделать тип-сохраняющую фильтрацию меня на этой неделе заинтересовала, поэтому я исследовал эту тему.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026536
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Я пишу код так, чтоб не отбирал у меня потом у меня времени по пустякам

Пусть плачет отдел сопровождения?

НеофитSQL
я делал промежуточную группировку/фильтрацию данных из 100500 колонок,

И что же было её результатом? Куда и в каком виде он передавался?
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026539
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие-то я тут слышу абсурдные мысли он некоторых. Или показалось?

Задача: выбрать строку по ключу

Moe решение:
Код: plsql
1.
2.
3.
  drow TBL%ROWTYPE;
...
  select * into drow from TBL t where t.pk = ...;



Кто-то собирается перечислять поля каждый раз, для такой задачи?
Что это даст, кроме занятости?
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026541
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env
НеофитSQL
Я пишу код так, чтоб не отбирал у меня потом у меня времени по пустякам

Пусть плачет отдел сопровождения?

НеофитSQL
я делал промежуточную группировку/фильтрацию данных из 100500 колонок,

И что же было её результатом? Куда и в каком виде он передавался?


В тот же код, который раньше читал нефильтрованные данные, или фильтрованные другими (также с соблюдением типа строки).

Принцип фильтрации - выкинь строчки, не меняй их формат. Удивляюсь, если это не очевидно.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026543
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL,

Конкретно для этого использования - применимо.

з.ы. если потом это не отдаётся наружу внешнему клиенту, который не умеет переопределять rowtype на лету.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026547
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Удивляюсь, если это не очевидно

С учётом того, что ваша терминология зачастую отличается от общепринятой - нет, не очевидно.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026600
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Задача: выбрать строку по ключу

Moe решение:
Код: plsql
1.
2.
3.
  drow TBL%ROWTYPE;
...
  select * into drow from TBL t where t.pk = ...;


Кто-то собирается перечислять поля каждый раз, для такой задачи?
Что это даст, кроме занятости?


С достаточно давних пор:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
...
cursor c1(p1...pn) is 
  select f1, f2
       , func(fn) as ffn
       , ..
    from TBL
   where ....
;
drow c1%ROWTYPE;
t_tb_drow is table of c1%ROWTYPE;
  tb_drow t_tb_drow;

...
  open c1(p1,p2,...pn);
  fetch c1 into drow;
  close c1;
...
  open c1(p1,p2,...pn);
  loop
    fetch c1 bulk collect into tb_drow limit N;
    forall i in 1..tb_drow.count
      insert into tgt_tbl(f1..fn)
      values(tb_drow(i).f1 ...)
      save exception
    ;
  exit when tb_drow.count < N;
  end loop;
  ...
  close c1;
  


Что касается "занятости" - повторюсь, генерация списка атрибутов не является проблемой .
Зато экономит кучу времени при поддержке кода.
Ну и описание структур через тип курсора многократно гибче и удобнее, чем через тип таблицы.
В частности, позволяет без проблем проводить через трансформацию как требуемую аналитику, так и обогащение .
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026640
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026647
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость


В статье речь идёт о "*" во внешнем селекте, от которого зависит переданное количество данных.

Ещё есть мулька что count(*) медленнее чем count(1), потому что звёздочка

:-)
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026648
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Ещё есть мулька
:-)

А еще есть плохая память на ники серьёзных экспертов.
...
Рейтинг: 0 / 0
Получить строку таблицы где 1 значение максимально
    #40026699
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
В статье речь идёт о "*" во внешнем селекте

Да, особенно в части про Cached cursors take more memory in shared pool и Server-side memory usage
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить строку таблицы где 1 значение максимально
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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