powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по курсорам
2 сообщений из 2, страница 1 из 1
Вопрос по курсорам
    #39496228
Wolfyteze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
SET SERVEROUTPUT ON

DECLARE
    v_num   NUMBER(3) := &n;
    v_sal   employees.salary%TYPE;
    v_nak   employees.salary%TYPE;
    CURSOR c_emp_cursor IS
        SELECT
            salary
        FROM
            employees
        GROUP BY
            salary
        ORDER BY 1 DESC;
BEGIN
    OPEN c_emp_cursor; -- открываем курсор
    FETCH c_emp_cursor INTO v_sal; -- извлекаем одну строку из курсора
    WHILE c_emp_cursor%rowcount <= v_num  -- задаем условие выхода:   
-- 1) пока число строк в таблице меньше равно заданному числу (v_num)
 AND
 c_emp_cursor%found LOOP -- 2) Есть строки для вставки 
        INSERT INTO top_salaries ( salary ) VALUES ( v_sal );

--        dbms_output.put_line(v_sal);
        FETCH c_emp_cursor INTO v_sal; -- опять обращаемся к курсору?!
    END LOOP;

    CLOSE c_emp_cursor;
END;
/

SELECT
    salary
FROM
    top_salaries;


Имеется код выше.
Объясните по русски, зачем второй раз обращаться к извлечению курсора.
...
Рейтинг: 0 / 0
Вопрос по курсорам
    #39496233
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wolfyteze,

За второй и последующими строками.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по курсорам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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