Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 помогите заполнить поле в таблице сиквенсом  [new]
Тима К.
Member

Откуда:
Сообщений: 9
Хочу написать процедуру, которая бы заполнила таблицу. Делаю так:

CREATE OR REPLACE PROCEDURE "PROC_INS"(count in number)
begin
for i in 1 .. count
loop
INSERT INTO ORD_OBJECT_GROUP(ID)
VALUES(sequen.nextval);
end loop;
end;

при запуске процедуры с параметром:
BEGIN
PROC_INS(100);
END;

система выдаёт ошибку:
[Error] Script lines: 1-4 --------------------------
ORA-06550: Строка 2, столбец 7:
PLS-00905: неприемлемый объект PROC_INS
ORA-06550: Строка 2, столбец 2:
PL/SQL: Statement ignored 
10 июл 08, 13:51    [5915330]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
select * from user_errors where name='PROC_INS';
10 июл 08, 13:56    [5915388]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
A.K.
Member

Откуда: Пенза
Сообщений: 2571
Вы сначала добейтесь, чтобы ваша процедура откомпилировалась без ошибок. Тогда и не будет проблем.

SQL> alter procedure proc_ins compile;

Warning: Procedure altered with compilation errors

SQL> show errors
Errors for PROCEDURE STUDENT.PROC_INS:

LINE/COL ERROR
-------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2/1 PLS-00103: Encountered the symbol "BEGIN" when expecting one of the following...
10 июл 08, 13:56    [5915389]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
AS or IS
10 июл 08, 13:59    [5915429]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
Двоюшник
Member

Откуда: Киев
Сообщений: 1135
1. нехватает CREATE OR REPLACE PROCEDURE "PROC_INS"(count in number) IS
2. имя параметра count - зарезервированое слово. измените на что-то вроде p_count

---
Ну ты заходи ежели чё...
10 июл 08, 14:00    [5915434]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
Proteus
Member

Откуда:
Сообщений: 1348
CREATE OR REPLACE PROCEDURE PROC_INS(count1 in number)
AS
begin
for i in 1 .. count1
loop
INSERT INTO ORD_OBJECT_GROUP(ID)
VALUES(sequen.nextval);
NULL;
end loop;
end;
так работает.
10 июл 08, 14:00    [5915435]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
Добрый Э - Эх
Guest
Тима К.
Хочу написать процедуру, которая бы заполнила таблицу. Делаю так:

CREATE OR REPLACE PROCEDURE "PROC_INS"(count in number) [IS|AS]
begin
for i in 1 .. count
loop
INSERT INTO ORD_OBJECT_GROUP(ID)
VALUES(sequen.nextval);
end loop;
end;
А где, позволь тебя спросить, IS / AS ???
10 июл 08, 14:00    [5915442]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
Тима К.
Member

Откуда:
Сообщений: 9
Спасибо большое, действительно не хватало is и поменял переменную count. Всё работает. Ошибка конечно была смешная )) дело в том, что с синтаксисом Oracle столкнулся впервые, вот поэтому и обращаюсь к знатокам :)
10 июл 08, 15:01    [5916124]     Ответить | Цитировать Сообщить модератору
 Re: помогите заполнить поле в таблице сиквенсом  [new]
slamovsky
Member

Откуда:
Сообщений: 142
действительно смешной. гораздо веселее развлечь окружающих, чем самому попытаться разобраться с элементарным вопросом
11 июл 08, 00:33    [5918876]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить