Oct. 25th, 2013

Для 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 наверняка в оракле есть. Но все равно, помоему, ужас.

August 2025

S M T W T F S
     12
34 567 89
10111213141516
17181920212223
24252627282930
31      

Style Credit

Expand Cut Tags

No cut tags