FB 1.5: insert into ... select

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
WAKE-UP
Сообщения: 20
Зарегистрирован: 17 ноя 2004, 12:26

FB 1.5: insert into ... select

Сообщение WAKE-UP » 17 ноя 2004, 12:31

Есть BD ~ 250000 Записей - 9 полей VARCHAR(255) и одно Text Blob

Делаю JOIN из 3х таблиц (включая эту большую) и пытаюсь записать в 4ую (новую).
Скрипт следующий:
insert into new_table
select ........ from ......

База - 480 мегабайт, на винте свободно 5 гигов.
После выполнения запроса вылетает ошибка:
database error: error write file. the printer is out of paper.

Сервер: FB 1.5

Romkin
Сообщения: 2
Зарегистрирован: 04 ноя 2004, 17:54

Сообщение Romkin » 17 ноя 2004, 12:56

Ага. А бумага на принтере есть? ;)
Место у тебя в каталоге temp кончилось

Гость

Re: FB 1.5: insert into ... select

Сообщение Гость » 17 ноя 2004, 13:16

WAKE-UP писал(а):Есть BD ~ 250000 Записей -Скрипт следующий:
insert into new_table
select ........ from ......
База - 480 мегабайт, на винте свободно 5 гигов.
...ошибка:
database error: error write file. the printer is out of paper.
а наоборот сделать
for select ........ from ......
insert into new_table
религия не позволяет ? :)
в IBE в редакторе SQL делаешь execute ibeblock и будет тебе счастье -))

Гость

Сообщение Гость » 17 ноя 2004, 13:50

Подскажите мне пожалуйста как правильно этот запрос сделать:

Код: Выделить всё

insert into main_tbl
select main_id, opf_id, banks_id, field1, field3, field4, field5, field6, field7, field8,field9,field10,field11,field12,field13,field14,field15,field16,field17,field18,field19,field21,field22,field23,field24
from temp_tbl, sp_opf, sp_banks
where
temp_tbl.field2 = sp_opf.opf_value
and
temp_tbl.field20 = sp_banks.banks_value
Пользуюсь IBExpert но про exucute ideblock я не в курсе ...
Заранее благодарен

Гость

Сообщение Гость » 17 ноя 2004, 14:18

Anonymous писал(а): Пользуюсь IBExpert но про exucute ideblock я не в курсе ...
Заранее благодарен
http://www.ibexpert.com/download/ibeblock_docu.txt

Гость

Сообщение Гость » 17 ноя 2004, 16:14

на первой строке

Код: Выделить всё

execute ibeblock
insert into main_tbl
select main_id, opf_id, banks_id, field1, field3, field4, field5, field6, field7, field8,field9,field10,field11,field12,field13,field14,field15,field16,field17,field18,field19,field21,field22,field23,field24
from temp_tbl, sp_opf, sp_banks
where
temp_tbl.field2 = sp_opf.opf_value
and
temp_tbl.field20 = sp_banks.banks_value
на самой первой строке ругается:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 9.
ibeblock.

Гость

Сообщение Гость » 17 ноя 2004, 16:48

Anonymous писал(а):на самой первой строке ругается:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 9.
ibeblock.
версия IBE видно старовата
скачай последнюю версию эксперта

Гость

Сообщение Гость » 17 ноя 2004, 17:51

Да вобщем-то разницы никакой нет. Всё равно не хватает :(((

Код: Выделить всё

execute ibeblock
AS
DECLARE VARIABLE F1 INTEGER;
DECLARE VARIABLE F2 INTEGER;
DECLARE VARIABLE F3 INTEGER;
DECLARE VARIABLE F4 VARCHAR(255);
DECLARE VARIABLE F5 VARCHAR(255);
DECLARE VARIABLE F6 VARCHAR(255);
DECLARE VARIABLE F7 VARCHAR(255);
DECLARE VARIABLE F8 VARCHAR(255);
DECLARE VARIABLE F9 VARCHAR(255);
DECLARE VARIABLE F10 VARCHAR(255);
DECLARE VARIABLE F11 VARCHAR(255);
DECLARE VARIABLE F12 VARCHAR(255);
DECLARE VARIABLE F13 VARCHAR(255);
DECLARE VARIABLE F14 VARCHAR(255);
DECLARE VARIABLE F15 VARCHAR(255);
DECLARE VARIABLE F16 VARCHAR(255);
DECLARE VARIABLE F17 VARCHAR(255);
DECLARE VARIABLE F18 VARCHAR(255);
DECLARE VARIABLE F19 VARCHAR(255);
DECLARE VARIABLE F20 VARCHAR(255);
DECLARE VARIABLE F21 VARCHAR(255);
DECLARE VARIABLE F22 VARCHAR(255);
DECLARE VARIABLE F23 VARCHAR(255);
DECLARE VARIABLE F24 VARCHAR(255);
DECLARE VARIABLE F25 VARCHAR(255);
begin
  /* Procedure Text */
for select main_id, opf_id, banks_id, field1, field3, field4, field5, field6, field7, field8,field9,field10,field11,field12,field13,field14,field15,field16,field17,field18,field19,field21,field22,field23,field24
from temp_tbl, sp_opf, sp_banks
where temp_tbl.field2 = sp_opf.opf_value and temp_tbl.field20 = sp_banks.banks_value
into :F1, :F2, :F3, :F4, :F5, :F6, :F7, :F8, :F9, :F10, :F11, :F12, :F13, :F14, :F15, :F16, :F17, :F18, :F19, :F20, :F21, :F22, :F23, :F24, :F25
do
begin
  insert into main_tbl values (:F1, :F2, :F3, :F4, :F5, :F6, :F7, :F8, :F9, :F10, :F11, :F12, :F13, :F14, :F15, :F16, :F17, :F18, :F19, :F20, :F21, :F22, :F23, :F24, :F25);
  suspend;
end
end

Ответить