Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 проблемы с процедурой  [new]
Sonia111
Guest
Помогите пожалуйста.
Ввожу процедуру
create or replase PROCEDURE KnigiPoKolvuAvtorov(kolvoavtorov number) IS
	CURSOR Knigi(kolvoavtorovknigi number) IS
		SELECT izdaniya.nazvanie, izdateli.name_izdatelya, izdaniya.data_vyxoda, COUNT(izdaniya_avtory.kod_avtora)
		FROM izdaniya, izdateli, izdaniya_avtory
		WHERE izdaniya.kod_izdatelya = izdateli.kod_izdatelya AND izdaniya.kod_izdaniya = izdaniya_avtory.kod_izdaniya AND izdaniya.kod_izdatelya = izdaniya_avtory.kod_izdatelya
		GROUP BY izdaniya.nazvanie, izdateli.name_izdatelya, izdaniya.data_vyxoda
		HAVING COUNT(izdaniya_avtory.kod_avtora) = kolvoavtorovknigi;
	TYPE kniga IS RECORD(nazvanie varchar2(30), izdatel varchar2(30), data_vyxoda date);
	m kniga;
BEGIN
		OPEN Knigi(kolvoavtorov);
		FETCH Knigi INTO m;
		WHILE m%FOUND LOOP
			dbms_output.put_line(m.nazvanie||' '||m.izdatel||' '||TO_CHAR(m.data_vyxoda,'DD.MM.YYYY'));
			FETCH Knigi INTO m;
		END LOOP;
END KnigiPoKolvuAvtorov;

выдает такую ошибку:
ORA-00905: missing keyword
13 фев 12, 13:51    [12081361]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
Sonia111,
replase
зы.и 4 не равно трём - это ответ на следующий вопрос)
13 фев 12, 13:54    [12081383]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
Sonia111
Guest
Vint, спасибо за вашу дальновидность))
13 фев 12, 13:58    [12081423]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
Sonia111,

Когда получаете непонятную ошибку, просто комментируйте операторы по одному.

ЗЫ Следующий вопрос будет про
m%FOUND
;)
13 фев 12, 14:05    [12081480]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
Sonia111
Guest
Люди, такими темпами я тут буду очень долго вас терроризировать)) А что не так с атрибутами?
зы. если есть еще явные ошибки, напишите пожалуйста сразу))
13 фев 12, 14:15    [12081574]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
grey_narn
Member

Откуда: Алма-Ата, Казахстан
Сообщений: 178
Sonia111
А что не так с атрибутами?

%FOUND у курсора, а не у записи, в которую он извлекается, надо проверять
13 фев 12, 14:48    [12081888]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
-2-
Member

Откуда:
Сообщений: 15330
dbms_output.put_line(m.nazvanie||' '||m.izdatel||' '||TO_CHAR(m.data_vyxoda,'DD.MM.YYYY'));
тип книга лучше декларировать как rowtype от курсора, а переменную назвать p вместо m.
13 фев 12, 16:13    [12082632]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Sonia111,

и смолоду отвыкайте от использования имен объектов типа KnigiPoKolvuAvtorov
(которое, на самом деле - еще хуже, чем вашем коде выглядит - KNIGIPOKOLVUAVTOROV )
13 фев 12, 16:35    [12082850]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6918
замените явный курсор на неявный
13 фев 12, 16:44    [12082931]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с процедурой  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Начни с первой строки сверяться со словарем по поводу синтаксиса (кстати, раскраска синтаксиса уже должна была натолкнуть на мысль)
create or replace ...

И про 4 != 3 было не зря сказано
Посмотри сколько полей возвращает курсор и сколько имеет принимающая запись
Про FOUND тоже сказали
Про говнонаименования тоже
В общем, за тебя выполнили всю работу
14 фев 12, 03:18    [12086073]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить