0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 14
1

Создание курсора. трабла

28.05.2014, 15:34. Показов 1129. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Курсор. Определить среднюю дистанцию проезда водителя, имеющих номер 6. В чем ошибка, не могу разобраться. Прошу помощи!!!!

SQL
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
DECLARE
     distance FLOAT;
     total FLOAT;
     counts INT;
     Cursor cursor_2 (nomer_dr NUMBER)
          IS
          SELECT SUMMA(TRIP_DISTANCE_KM)/COUNT(TRIP_DISTANCE_KM)
               FROM VOLOSUNOV_DEPARTURES, VOLOSUNOV_DRIVERS
               WHERE VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=VOLOSUNOV_DRIVERS.DRIVER_NUMBER AND VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=nomer_dr;
 
BEGIN
     DELETE FROM rez_cur2;
     total:=0;
     counts:=0;
     OPEN cursor_2 (devil);
     loop
          fetch cursor_2 INTO distance;
          exit WHEN cursor_2 %notfound;
          total:=total+distance;
          counts :=counts +1;
     END loop;
 
     сlose cursor_2;
     total:=total/counts;
     INSERT INTO rez_cur2 VALUES (total);
END;
Ответ сервера:

SQL
1
2
3
4
5
6
7
8
9
10
ORA-06550: line 22, COLUMN 13:
PLS-00103: Encountered the symbol "CURSOR_3" WHEN expecting one OF the following:
 
   := . ( @ % ;
The symbol ":=" was substituted FOR "CURSOR_3" TO continue.
 
1. DECLARE
2.      distance FLOAT;
3.      total FLOAT;
4.      counts INT;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2014, 15:34
Ответы с готовыми решениями:

Создание курсора в PL/SQL
Выведите название и id первых n департаментов, отсортированных по названию (число n вводится с...

Трабла с самопальной прогой в связке с MYSQL
Уважаемы форумчане, прошу помощи. Будучи занимаясь настройкой и "поднятием" мертвых или сбоящих...

Access 2003 создание таблицы для перевозки пассажиров(трабла со счетчиком)
Есть табл с стандартными даными фио адрес и телефон и пара мусорных столбцов и так же есть поле...

Создание курсора
Задали создать курсор, который бы открывал любой документ. Какой алгоритм работы? Нигде не могу...

7
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
28.05.2014, 16:11 2
Цитата Сообщение от Mihey_007 Посмотреть сообщение
SELECT SUMMA
нет такой функции SUMMA. Есть SUM

Добавлено через 1 минуту
Цитата Сообщение от Mihey_007 Посмотреть сообщение
DELETE FROM rez_cur2;
используй лучше truncate table
1
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 14
28.05.2014, 16:16  [ТС] 3
SQL
1
2
3
4
5
6
7
8
9
10
ORA-06550: line 23, COLUMN 13:
PLS-00103: Encountered the symbol "CURSOR_2" WHEN expecting one OF the following:
 
   := . ( @ % ;
The symbol ":=" was substituted FOR "CURSOR_2" TO continue.
 
1. DECLARE
2.      distance FLOAT;
3.      total FLOAT;
4.      counts INT;
Все равно ошибка

Добавлено через 2 минуты
SQL
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
DECLARE
     distance FLOAT;
     total FLOAT;
     counts INT;
     Cursor cursor_2 (nomer_dr NUMBER)
          IS
          SELECT SUM(TRIP_DISTANCE_KM)/COUNT(TRIP_DISTANCE_KM)
               FROM VOLOSUNOV_DEPARTURES, VOLOSUNOV_DRIVERS
               WHERE VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=VOLOSUNOV_DRIVERS.DRIVER_NUMBER AND VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=nomer_dr;
 
BEGIN
     DELETE FROM rez_cur2;
     total:=0;
     counts:=0;
     OPEN cursor_2 (6);
     loop
          fetch cursor_2 INTO distance;
          exit WHEN cursor_2 %notfound;
          total:=total+distance;
          counts :=counts +1;
     END loop;
 
     сlose cursor_2;
     total:=total/counts;
     INSERT INTO rez_cur2 VALUES (total);
END;
0
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
28.05.2014, 16:36 4
Лучший ответ Сообщение было отмечено Mihey_007 как решение

Решение

Заметь, что служебное слово OPEN подсвечивается, а вот CLOSE нет. Я так думаю, что ты допустил ошибку при написании CLOSE cursor_2;
1
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 14
28.05.2014, 16:42  [ТС] 5
SQL
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
DECLARE
     distance FLOAT;
     total FLOAT;
     counts INT;
     Cursor cursor_2 (nomer_dr NUMBER)
          IS
          SELECT SUM(TRIP_DISTANCE_KM)/COUNT(TRIP_DISTANCE_KM)
               FROM VOLOSUNOV_DEPARTURES, VOLOSUNOV_DRIVERS
               WHERE VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=VOLOSUNOV_DRIVERS.DRIVER_NUMBER AND VOLOSUNOV_DEPARTURES.DRIVER_NUMBER=nomer_dr;
 
BEGIN
     DELETE FROM rez_cur2;
     total:=0;
     counts:=0;
     OPEN cursor_2 (6);
     loop
          fetch cursor_2 INTO distance;
          exit WHEN cursor_2 %notfound;
          total:=total+distance;
          counts :=counts +1;
     END loop;
 
     CLOSE cursor_2;
     total:=total/counts;
     INSERT INTO rez_cur2 VALUES (total);
END;
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
28.05.2014, 16:44 6
Лучший ответ Сообщение было отмечено Mihey_007 как решение

Решение

Цитата Сообщение от mlc Посмотреть сообщение
Я так думаю, что ты допустил ошибку при написании CLOSE cursor_2
Это легко проверяется
Копируем написаное слово сlose и
SQL
1
2
SELECT dump('сlose')
FROM dual
Код первой буквы - 241, а английский алфавит, как известно, находится в первых 128
1
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
28.05.2014, 16:46 7
Лучший ответ Сообщение было отмечено Mihey_007 как решение

Решение

Цитата Сообщение от Grossmeister Посмотреть сообщение
Код первой буквы - 241, а английский алфавит, как известно, находится в первых 128
вот и корень зла
1
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 14
28.05.2014, 16:52  [ТС] 8
СПАСИБО БОЛЬШОЕ!!! СЕЙЧАС ПОПРОБУЮ!!! ВОТ ЭТО БЕДА!!!
0
28.05.2014, 16:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2014, 16:52
Помогаю со студенческими работами здесь

Создание курсора mysql
Не знаю в чем ошибка, но пхпадмин вот как ругается #1064 - You have an error in your SQL syntax;...

Создание подсказки по наведению курсора
При наведении курсора мыши на ссылку, как сделать подсказку , содержащую несколько строк Спасибо

Создание и перемещение курсора в консоли
Здравствуйте! Задался таким вопросом, а возможно ли с помощью Python сделать, грубо говоря,...

Создание файла курсора указателя мыши
Здравствуйте, уважаемые форумчане. Скажите, пожалуйста, где можно взять подробную информацию о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru