В oracle database все как-то не славабогу. Такое впечатление, что базу придумывали жопой. Конечно я понимаю, что эта бодяга тянется с 1979 года, но такое впечатление, что стиль " усложним чтоб враг не догадался" любили практиковать не только в ссср. Возможно, в ней богатые возможности по администрированию, но язык запросов местами весьма беден и многословен.

Например, в ней есть функция BITAND, которая делает побитовое И, но нету BITOR и BITXOR. Хочешь делать побитовое ИЛИ - пиши пользовательскую функцию.
В одном из прошлых постов я показал, что инсерты в ней гораздо длинее, чем в MySQL, так вот, длиней не только инсерты, но и любые запросы

Неудивительно, что mysql в итоге купили оракловцы. В MySQL все гораздо логичней и красивее, хотя видно, что продукт ненастолько взрослый как оракл - некоторых полезностей не хватает и мускулу.
Для mysql мы делаем так:

INSERT INTO mytable (col1, col2, col3) VALUES (1,2,3), (4,5,6), (7,8,9);

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

Для oracle database этот запрос будет выглядеть так:

INSERT ALL INTO mytable (col1, col2, col3) VALUES (1,2,3) INTO mytable (col1, col2, col3) VALUES (4,5,6) INTO mytable (col1, col2, col3) VALUES (7,8,9) SELECT * FROM DUAL;

Западло каждый раз перечислять поля? на стак_оверфлов предлагается такой костыль:

INSERT INTO mytable (col1, col2, col3) select 1,2,3 from dual union all select 4,5,6 from dual union all select 7,8,9 from dual;

Или хранимая процедура+ее многократный вызов.

Да, я понимаю, руками подобное никто не пишет, для сгенеренного скрипта не особо важно, да и аналоги load data infile наверняка в оракле есть. Но все равно, помоему, ужас.

June 2025

S M T W T F S
1 23 456 7
8 9 1011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags