SET TERM^;
CREATE PROCEDURE ljudjee
AS
DECLARE VARIABLE i integer=1;
DECLARE VARIABLE d integer;
DECLARE VARIABLE e integer;
DECLARE VARIABLE star integer;
BEGIN
while (i <= 1000000) do
begin
d=((rand()*99999)+1);
e=((rand()*99999)+1);
star=((rand()*50)+18);
insert into ljudje values (:i,'Ime','Priimek',:star,:d,:e);
i = i + 1;
END
END^
SET TERM ;^
Ну, я не получаю никаких ошибок из этого кода при его выполнении. Кажется, что все в порядке, но когда я пытаюсь ВЫПОЛНИТЬ ПРОЦЕДУРА, он не работает. Также нет ошибок, но время выполнения процедуры берет навсегда и фактически ничего не делает. Это должно быть что-то неправильно с функцией rand(), которую я, вероятно, неправильно использовал. Есть идеи? Также в таблицу не включаются записи. Вовсе нет.Синтаксис случайного целого числа Firebird
Вы увидите записи в таблице, только если процедура выполнена правильно. Либо есть ошибка, либо процедура прекращается, и никакие записи не попадают в таблицу. Попробуйте уменьшить количество итераций до 10. Остается ли процедура? –
Процедура работает, если я поместил счет в 10. Это не значит, что если значение поместить в 1000000. Я оставляю его один на 30 минут, но ничего не делает. Он должен быть выполнен в считанные секунды. –
Что произойдет, если вы выполните это в транзакции 'NO WAIT'? –