2015-04-06 3 views
0

Я использую следующий запрос для вставки несколько строк в таблицу my_employee:Oracle SQL проблема при вставке нескольких строк в таблицу

insert all into 
    my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
    my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
    my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
select * from DUAL; 

пока я последовал за подобные вопросы шага за STET, но я не знаю, почему я получаю эту ошибку:

Erreur SQL : ORA-00928: missing SELECT keyword 
00928. 00000 - "missing SELECT keyword" 

ответ

2

Для каждой вставки необходимо указать into. Это должно работать:

insert all 
    into my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
    into my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
    into my_employee (id, last_name, first_name, userid, salary) values (&id, '&last_name', '&firstname', '&userid', &salary) 
select * from DUAL; 
+0

Приветствия для помощи @jodyt –

1

Вы можете сделать это с тремя операторами вставки:

insert into my_employee (id, last_name, first_name, userid, salary) 
    values (&id, '&last_name', '&firstname', '&userid', &salary); 

insert into my_employee (id, last_name, first_name, userid, salary) 
    values (&id, '&last_name', '&firstname', '&userid', &salary); 

insert into my_employee (id, last_name, first_name, userid, salary) 
    values (&id, '&last_name', '&firstname', '&userid', &salary); 

Или с помощью одного оператора с использованием union all:

insert into my_employee (id, last_name, first_name, userid, salary) 
    select &id, '&last_name', '&firstname', '&userid', &salary 
    from dual union all 
    select &id, '&last_name', '&firstname', '&userid', &salary 
    from dual union all 
    select &id, '&last_name', '&firstname', '&userid', &salary; 

Я не вижу заявку на insert all, потому что вы хотите вставить в одну таблицу.

1

В MSSQL

insert into my_employee (id, last_name, first_name, userid, salary) 
    values (&id, '&last_name', '&firstname', '&userid', &salary) 
go 100; 

он вставляет 100 строк с одинаковым значением

Смежные вопросы