![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Oracle Insert several rows [D7]
McSimm2 © (2003-07-07 09:56:00)Как записать в одном запросе несколько строк???
insert into table1 values ("value1","value2");
insert into table1 values ("value3","value4");
....;
Q (2003-07-07 12:23:00) [1]если value1, value2 хранятся в полях другой ТБД (напр-р, field1 и field2 соот-но), то можно так
INSERT INTO table1
SELECT field1, field2
FROM OtherTable
Anatoly Podgoretsky (2003-07-07 12:13:00) [2]petr_v_a © (07.07.03 12:10)
БДЕ после выхода Д6 не менялась.
petr_v_a (2003-07-07 12:10:00) [3]При использовании BDE никак ( по крайней мере в D5, но в том, что в D7 BDE стала только кривее, я уверен на 99%, такова тенденция )
При использовании DOA можно сделать примерно так:
begin
forall i in :mybind.first .. :mybind.last loop
insert into mytable
values ( :mybind(i).field1, и.т.д, :mybind(i).fieldN);
end;
:mybind привязать через TOracleQuery.SetComplexVariable
Очень эффективный способ для вставки большого количества записей, трафик упадет раз в 5
DenK_vrtz (2003-07-07 11:14:00) [4]Я бы сделал вьюху, а к ней инстеадофный триггер
DenK_vrtz (2003-07-07 11:12:00) [5]DenK_vrtz © (07.07.03 11:08) <-Простите, глупость сказал :-)
DenK_vrtz (2003-07-07 11:08:00) [6]Чего то я не понял!? А зачем инсерт делать двумя строчками?
Sandman25 (2003-07-07 11:06:00) [7]Упс, натормозил.
Вместо
from table2
where 1=0
нужно использовать таблицу с 1 записью, либо писать
Distinct и убрать where.
McSimm2 (2003-07-07 11:05:00) [8]Я хотел в одном запросе добавить сразу несколько строк
VAleksey (2003-07-07 11:02:00) [9]А что имеется в виду вообще? Запрос у тебя не путается с PL/SQL блоком?
Sandman25 (2003-07-07 10:59:00) [10]
Insert into table1
select "value1","value2"
from table2
where 1=0
union all
select "value3","value4"
from table2
where 1=0
Но лучше так не делать, а использовать
with Query do
begin
Sql.Text := "insert into table1 values(:p1,:p2)";
Prepare;
Params[0].AsString := "value1";
Params[1].AsString := "value2";
ExecSql;
Params[0].AsString := "value3";
Params[1].AsString := "value4";
ExecSql;
end
Johnmen (2003-07-07 10:08:00) [11]Нет.