powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как правельно задать курсор в пакете?
13 сообщений из 13, страница 1 из 1
Как правельно задать курсор в пакете?
    #39936205
NovaLiza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только начинаю обучатся (ошибки в теле на курсоре выходят)


CREATE OR REPLACE PACKAGE PAC AS
CURSOR Cur1 RETURN STUDENT3%ROWTYPE;
FUNCTION SUM_stud(stipuha NUMBER := 800) RETURN NUMBER;
PROCEDURE SCHETCHIK;
END;

CREATE OR REPLACE PACKAGE BODY PAC AS

PAC_COUNT NUMBER := 0;
FUNCTION SUM_stud(stipuha NUMBER)
RETURN NUMBER IS

BEGIN
SCHETCHIK;
CURSOR Cur1 RETURN STUDENT3%ROWTYPE IS SELECT COUNT(ST_ID) FROM STUDENT3 WHERE STIPEND = stipuha;
END;
END;

PROCEDURE SCHETCHIK IS
BEGIN
PAC_COUNT := PAC_COUNT + 1;
INSERT INTO VYZOV_PAKETOV
VALUES (PAC_COUNT, STIP, STUD_COUNT);
COMMIT;
END;
END;

Ошибки:
9/8 PLS-00103: Encountered the symbol "CUR1" when expecting one of
the following:
:= . ( @ % ;

9/37 PLS-00103: Encountered the symbol "IS" when expecting one of the
following:
. ( , * @ % & - + / at mod remainder rem <an identifier>
<a double-quoted delimited-identifier> <an exponent (**)> as
into || multiset bulk

10/1 PLS-00103: Encountered the symbol "END" when expecting one of the

LINE/COL ERROR
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936211
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правельно...Только начинаю обучатся...ПравИльно писать "обучатЬся".
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936216
NovaLiza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-, Вроде просили найти ошибку в коде, пусть даже пунктуационную=)
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936221
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza
просили
Вас ещё и много?
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936232
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza
Вроде просили найти ошибку в коде, пусть даже пунктуационную
Я оценивал русский язык, потому что незнание pl/sql компилятор уже оценил с указанием места ошибки.
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936234
NovaLiza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,
это форум с указанием оценки знаний?
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936235
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza
CURSOR Cur1 RETURN...

Что ты хотела от этой строки?
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936250
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza
-2-,
это форум с указанием оценки знаний?

не совсем, но таки 12561782
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936265
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza,

1) Ваш курсор "возвращает" число count(*), а Вы описываете строку
если б в курсоре было select * from STUDENT3 тогда CURSOR Cur1 RETURN STUDENT3%ROWTYPE;

у Вас число и если уж очень надо так обьявить курсор то примерно так
type t_cc is record(cc number);
CURSOR Cur1 RETURN t_cc;

2) в ф-ции SUM_stud используется SCHETCHIK, ee надо обьявить до SUM_stud

3) в курсоре WHERE STIPEND = stipuha; я б заменил на параметр
CURSOR Cur1(p_stipend number) .... WHERE STIPEND = p_spipend

4) курсор в ф-ции как-то надо использовать, типа
open cur1(stipuha);
fetch cur1 into ...
close cur1;

5) из ф-ции надо что-то вернуть, напр COUNT(ST_ID)

6) еще что-то

.....
stax
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936270
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
2) в ф-ции SUM_stud используется SCHETCHIK, ee надо обьявить до SUM_stud
Автором приведено объявление до использования.
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936274
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Stax
2) в ф-ции SUM_stud используется SCHETCHIK, ee надо обьявить до SUM_stud
Автором приведено объявление до использования.


недоглядел

зациклился на BODY

.....
stax
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936449
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NovaLiza
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
CREATE OR REPLACE PACKAGE PAC AS

	CURSOR Cur1 RETURN STUDENT3%ROWTYPE;

	FUNCTION SUM_stud(stipuha NUMBER := 800) RETURN NUMBER;

	PROCEDURE SCHETCHIK;

END;

CREATE OR REPLACE PACKAGE BODY PAC AS

	PAC_COUNT NUMBER := 0;

	FUNCTION SUM_stud(stipuha NUMBER)
	RETURN NUMBER IS
	
	BEGIN
		SCHETCHIK;
		CURSOR Cur1 RETURN STUDENT3%ROWTYPE IS
                SELECT COUNT(ST_ID)
                  FROM STUDENT3
                 WHERE STIPEND = stipuha;
		END;
	END;
	
	PROCEDURE SCHETCHIK IS 
	BEGIN
		PAC_COUNT := PAC_COUNT + 1;
		INSERT INTO VYZOV_PAKETOV 
		VALUES (PAC_COUNT, STIP, STUD_COUNT);
		COMMIT;
	END;

END;

тег src улучшает восприятие
...
Рейтинг: 0 / 0
Как правельно задать курсор в пакете?
    #39936492
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
тег src улучшает восприятие
И называть объекты транслитерацией неэстетично. Нужно вместо
Код: plsql
1.
STUDENT3

использовать английские наименования:
Код: plsql
1.
СТЬЮДЕНТ3
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как правельно задать курсор в пакете?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]