Как я видел на многих сайтах, если я хочу сделать INSERT ALL, я должен закончить его с SELECT (Like SELECT * FROM dual;)
INSERT ALL
SELECT (Like SELECT * FROM dual;)
Почему?
Подзапрос является обязательным в соответствии с синтаксисом INSERT ALL (см. http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#i2111652)
. Предложение вставки выполняется для каждой строки, возвращаемой подзапросом (т. Е. Инструкция SELECT). SELECT * FROM dual возвращает одинстрока, поэтому insert_clause (s) выполняется один раз (что полезно, когда вы хотите вставить жестко закодированный набор значений)
Как показано в документации 1001 *, синтаксис INSERT ALL ожидает подзапрос: вы не можете иметь INSERT ALL [...] VALUES [...].
INSERT ALL [...] VALUES [...]
Я подозреваю, что SELECT from dual - это способ сделать мульти вставку одной строки в несколько таблиц.