Вывести последнюю и k-ю запись
Дмитрий3Б
Написал запрос который выводит первую запись!!!! Необходимо вывести последнюю и k-ю запись!!!!! что нужно добавить!!!! ???? Пробую через цикл!!! Выводит те поля где id>13 Все работает, но только проблема в том что она выводит пустые поля!!!! Выводит: ID: Код жанра: Название книги: Автор: Цена: Количество: Дополнительная информация: ID: Код жанра: Название книги: Автор: Цена: Количество: Дополнительная информация:Почему он выводит так? чего не хватает!!! Хотелось бы что бы он выводил как на картинке !
SET SERVEROUTPUT ON DECLARE knig_id VARCHAR2(4); id_cind_book VARCHAR2(4); name_book VARCHAR2 (100); name_autor VARCHAR2(100); cena NUMBER; kol_vo VARCHAR2(4); dop_inf VARCHAR2(100); CURSOR cur IS SELECT * FROM bibli.KNIGI; BEGIN OPEN cur; FETCH cur INTO knig_id, id_cind_book, name_book, name_autor, cena, kol_vo, dop_inf; DBMS_OUTPUT.enable(); DBMS_OUTPUT.PUT_LINE( 'ID:'|| knig_id); DBMS_OUTPUT.PUT_LINE( 'Код жанра: ' || id_cind_book ); DBMS_OUTPUT.PUT_LINE( 'Название книги: ' || name_book); DBMS_OUTPUT.PUT_LINE( 'Автор: ' || name_autor); DBMS_OUTPUT.PUT_LINE( 'Цена: ' || cena); DBMS_OUTPUT.PUT_LINE( 'Количество: ' || kol_vo); DBMS_OUTPUT.PUT_LINE( 'Дополнительная информация: ' || dop_inf); CLOSE cur; END;
SET SERVEROUTPUT ON DECLARE knig_id VARCHAR2(4); id_cind_book VARCHAR2(4); name_book VARCHAR2 (100); name_autor VARCHAR2(100); cena NUMBER; kol_vo VARCHAR2(4); dop_inf VARCHAR2(100); CURSOR addresses_c IS SELECT * FROM bibli.knigi WHERE knig_id >13; BEGIN FOR rec IN addresses_c LOOP DBMS_OUTPUT.PUT_LINE( 'ID:'|| knig_id); DBMS_OUTPUT.PUT_LINE( 'Код жанра: ' || id_cind_book ); DBMS_OUTPUT.PUT_LINE( 'Название книги: ' || name_book); DBMS_OUTPUT.PUT_LINE( 'Автор: ' || name_autor); DBMS_OUTPUT.PUT_LINE( 'Цена: ' || cena); DBMS_OUTPUT.PUT_LINE( 'Количество: ' || kol_vo); DBMS_OUTPUT.PUT_LINE( 'Дополнительная информация: ' || dop_inf); END LOOP; END;
9 ответов
Дмитрий3Б
как мне сделать что бы эти значения взялись из моей таблицыЗапись FOR rec означает, что на каждом шаге цикла очередная строка выбирается в RECORD rec с именами полей, которые соответствуют именам в SELECT. Соответственно и надо обращаться к полям record, т.е. rec.id (если поле называется id)