powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / На философию потянуло...
25 сообщений из 139, страница 2 из 6
На философию потянуло...
    #33824414
Grami
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grexhide Grami minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)

Надмозги за работой ?

Непонял?
...
Рейтинг: 0 / 0
На философию потянуло...
    #33826221
rvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось, чтобы если при INSERT отваливается unique constraint возвращался rowid существующей записи или само значение уникального ключа.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33826780
Yuri Kazakoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Grami minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)

А, может, проще сделать временную табличку, куда записать все 1000 и более строк, а потом её соединить с основной табличкой? Вот и результат будет. А то 1000 и более OR-ов как-то некрасиво.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33826805
Jannny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется возможность bulk-ом загружать в поле "index by" :)
...
Рейтинг: 0 / 0
На философию потянуло...
    #33827574
Не хватает вьюх с параметрами. Я имею в виду следущее. Зачастую, вместо того, чтобы писать PL/SQL-функцию, хочется определить вьюху с параметрами:
Код: plaintext
1.
2.
3.
4.
5.
create view v(p1 number, p2 number)
as
select '=' eq from dual where p1 = p2;

select * from v( 1 ,  2 );
...
Рейтинг: 0 / 0
На философию потянуло...
    #33827613
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы из MERGE убрали дурацкое ограничение про stable set of rows...
Ну не пофигу ораклу, чтобы из одной строки источника проапдейтились 10 строк таблицы?
...
Рейтинг: 0 / 0
На философию потянуло...
    #33827900
Grami
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Kazakoff Grami minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)

А, может, проще сделать временную табличку, куда записать все 1000 и более строк, а потом её соединить с основной табличкой? Вот и результат будет. А то 1000 и более OR-ов как-то некрасиво.

Зато работает вместо двух минут - одну секунду.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33828944
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
constraint FkChildtoMaster foreign key (IdMaster) references Master(Id)
ERROR MESSAGE 'В таблице Child есть поорождённые записи'
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829060
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_kus
Код: plaintext
1.
constraint FkChildtoMaster foreign key (IdMaster) references Master(Id)
ERROR MESSAGE 'В таблице Child есть поорождённые записи'


Есть такое во всех уважающих себя клиентах.
Это не задача сервера, а задача клиента - отобразить на нужном языке сообщение об ошибке.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829063
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rvkХотелось, чтобы если при INSERT отваливается unique constraint возвращался rowid существующей записи или само значение уникального ключа.

LOG ERRORS CLAUSE
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829067
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JannnyХочется возможность bulk-ом загружать в поле "index by" :)

Дык тогда он перестанет быть bulk-ом
Если надо, перелить всегда можно.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829074
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ненавижу регистрациюНе хватает вьюх с параметрами. Я имею в виду следущее. Зачастую, вместо того, чтобы писать PL/SQL-функцию, хочется определить вьюху с параметрами:
Код: plaintext
1.
2.
3.
4.
5.
create view v(p1 number, p2 number)
as
select '=' eq from dual where p1 = p2;

select * from v( 1 ,  2 );


Было бы хорошо, но от такого оптимизатор свихнется, думаю.
Обычно для параметризованных вьюх (вовсю пользовали на прошлой работе через пакетные переменные) нужно не только использование параметров, но и разная логика, в зависимости от них, т.е. вьюхи получались сильно перегруженными логикой.
Пусть бы вместо уродского энидатасета сделали определение типа возвращаемого курсора во время исполнения (ну, и глюки из пайплайн-функций поубирали).
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829086
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousГоспода, у меня образовалось немного времени и со страшной силой потянуло на философию :)
И размышляю я на тему "а какого лешегшо мне не хватает в СУБД Oracle"?
Кто не против отвлеченной философии - присоединяйтесь :)

Итак, для затравки - мне не хватает:

1) конструкции вроде

Код: plaintext
1.
2.
3.
insert into table x 
select ... from 
    table( delete table y where ... ) 
where... [group by...];

т.е. получать курсор из операции delete.
Это позволило бы существенно упростить логику трансформации предварительных данных.


Это при single-subscriber.
Тогда уж и до кучи (для multi-subscriber):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
merge into ...
using ...
when matched then
  if ... then update ... (update source ... |delete source ...)
  else delete ... (update source ... |delete source ...)
when not matched then
  if ... then insert (update source ... |delete source ...)
  else null (update source ... |delete source ...)

...
Рейтинг: 0 / 0
На философию потянуло...
    #33829089
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yuri Kazakoff Grami minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)

А, может, проще сделать временную табличку, куда записать все 1000 и более строк, а потом её соединить с основной табличкой? Вот и результат будет. А то 1000 и более OR-ов как-то некрасиво.

Сделал 2000 через union all - сервак сказал, что такую х*ню парсить не будет, шаред жалко. И правильно сделал - 1000 в in - это только DSQL, в нем лучше включить голову, чем таких конструкций от оракла домогаться.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829096
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TakuravaЧтобы можно было написать
Код: plaintext
1.
2.
select DIR, count(*)
  from dir_size
  group by  1 
вместо
Код: plaintext
1.
2.
select DIR, count(*)
  from dir_size
  group by DIR


Ага, мля, а потом нормальные разработчики с таким кодом днями будут трахаться и тибидохаться, когда ты напишешь
Код: plaintext
1.
2.
3.
select v1.*,sum(v2.value) 
from v1 inner join v2 on v1.id=v1.id
group by  1 ,rollup( 2 , 3 , 4 )
, а потом в v1 поменяется порядок полей.

фтопку!
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829102
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey MМне бы лично хотелось иметь встроенную конструкцию наподобие LIMIT в MySql. Знаю что без этого обойтись можно но тем не менее было бы приятно.

rownum, что-ли?
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829111
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax.
10) добавать констраит "непересекающейся диапазон"


Да-да-да-да!!!
И еще быстрое сравнение диапазонов по двум полям вида:
Код: plaintext
1.
range(sysdate- 1 ,sysdate+ 1 ) intersects range(dt_1,dt_2)
с помощью специальных индексов.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829126
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax.как я мог забыть (позор на мою голову)
0.0
порядок срабатывания триггеров
.....
stax

Мля-2. Как с этим потом другие разработчики будут разбираться! Это же полностью жопный способ спроектировать что-до - ты бы еще GO TO пожелал...
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829133
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
афторХотелось бы уметь апдейтить вcю строку, не перечисляя столбцов

update ТАБЛ x
set VALUE(x) = l_row(i)
where ...

КГ/..
При накатывании патчей порядок столбцов на разработческой базе и у клиента разный. У разных клиентов тоже может быть разный.
фтопку.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829150
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
RA\/ENНу ты разошелся :)
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829244
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENа потом нормальные разработчики с таким кодом днями будут трахаться и тибидохаться, когда ты напишешь
Код: plaintext
select v1.*

Скорее так напишет НЕ нормальный разработчик
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829384
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takurava RA\/ENа потом нормальные разработчики с таким кодом днями будут трахаться и тибидохаться, когда ты напишешь
Код: plaintext
select v1.*

Скорее так напишет НЕ нормальный разработчик

абассака
ржунимагу, ничего личного.

Даже если написать v1.a,v1.b,v1.c,v1.d - сути это не меняет.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829454
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENДаже если написать v1.a,v1.b,v1.c,v1.d - сути это не меняет.
А почему, если написать
Код: plaintext
1.
2.
select v1.a, v1.b, v1.c, v1.d, sum(v2.value) 
  from v1 inner join v2 on v2.id=v1.id
  group by  1 , rollup( 2 ,  3 ,  4 )
при изменении порядка полей в таблице v1, запрос перестанет правильно работать?
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829586
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey MМне бы лично хотелось иметь встроенную конструкцию наподобие LIMIT в MySql. Знаю что без этого обойтись можно но тем не менее было бы приятно.
LIMIT - плохая конструкция. Плохая тем, что ее применение подразумевает многократное исполнение одного и того же запроса; при этом естественно было бы потребовать достижения двух целей, которые в ней, если не ошибаюсь, не достигаются:

- согласованность данных между отдельными вызовами
- отсутствие дополнительной нагрузки (выполнение запроса один раз).

Полагаю, если бы Oracle предложил хорошее стандартное решение проблемы pagination (или как она там), это было бы здорово. Ну а LIMIT - "решение, которым не следует пользоваться", соответственно нафиг надо.
...
Рейтинг: 0 / 0
На философию потянуло...
    #33829926
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takurava RA\/ENДаже если написать v1.a,v1.b,v1.c,v1.d - сути это не меняет.
А почему, если написать
Код: plaintext
1.
2.
select v1.a, v1.b, v1.c, v1.d, sum(v2.value) 
  from v1 inner join v2 on v2.id=v1.id
  group by  1 , rollup( 2 ,  3 ,  4 )
при изменении порядка полей в таблице v1, запрос перестанет правильно работать?

А представь теперь, что между select и group by строка 200 кода. И не заметить ошибку, допустим, при смене полей - как нефиг нафиг.
Проходил уже - 3 часа ковырялся за одним "разработчиком", который вместо честных выражений сделал уровень вложенности, и попутал алиасы - полная аналогия того, что будет, если делать group by 1,rollup(2,3).
...
Рейтинг: 0 / 0
25 сообщений из 139, страница 2 из 6
Форумы / Oracle [игнор отключен] [закрыт для гостей] / На философию потянуло...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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