Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Insert записи в цикле, Error 42601 
:(
    Опции темы
botanik
Дата 1.12.2009, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



помогите плиз молодому не опытному
Что не так
Код

 for i in 22..100022 loop
      insert into public.printefileids (id, efileid) values (i, 122635);
    end loop;
language 'plpgsql';




pgAdmin 3 выдает ошибку:

ERROR:  syntax error at or near "for"
LINE 1:     for i in 22..100022 loop
            ^

********** Ошибка **********

ERROR: syntax error at or near "for"
SQL state: 42601
Характеристика:5
PM MAIL   Вверх
DimW
Дата 1.12.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



а перед началом цикла что? может точку с запятой перед циклом не поставил?
вот это у тебя работает?
Код

FOR i IN 1..10 LOOP
    RAISE NOTICE ''i is %'', i;
END LOOP;

PM MAIL ICQ   Вверх
botanik
Дата 1.12.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



В запросе больше ничего нет абсолютно
PM MAIL   Вверх
DimW
Дата 1.12.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(botanik @  1.12.2009,  13:16 Найти цитируемый пост)
В запросе больше ничего нет абсолютно
  smile 
PL/pgSQL is a block-structured language
PM MAIL ICQ   Вверх
botanik
Дата 1.12.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



Код

CREATE FUNCTION cycle () RETURNS void AS'
DECLARE
h BIGINT:=2;
query TEXT;
BEGIN 
WHILE (h < 1000182) LOOP
query:="INSERT INTO printe (id, file) VALUES (h, 122635)";
EXECUTE query;
h:=h+1;
END LOOP;
END;
'LANGUAGE 'plpgsql';


В результате долгих мучений получил вышеуказанный код, но результата нет. Строки в таблицу не попадают.  smile 
PM MAIL   Вверх
DimW
Дата 2.12.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 2
Всего: 44



Цитата(botanik @  1.12.2009,  20:34 Найти цитируемый пост)
вышеуказанный код

да не про это я вам толкую. по ссылке в первую очередь написано:
Цитата

A block is defined as: 

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
END [ label ];


ну т.е.
Код

begin
  FOR i IN 1..10 LOOP
      RAISE NOTICE ''i is %'', i;
  END LOOP;
end;


Цитата(botanik @  1.12.2009,  20:34 Найти цитируемый пост)
В результате долгих мучений получил вышеуказанный код


Код

CREATE FUNCTION cycle() RETURNS void AS $$
DECLARE  
  h BIGINT := 2;
BEGIN
  WHILE (h < 1000182)
  LOOP
    INSERT INTO printe (id, file) VALUES (h, 122635);
    h := h + 1;
  END LOOP;
END;
$$ LANGUAGE plpgsql;


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.