Привет, я работаю над академическим заданием, и мне нужна помощь с секцией исполнения моего блока.Я пытаюсь использовать пользовательский ввод для вставки в таблицу (бестселлеры).Любая помощь будет принята с благодарностью.
DROP TABLE best_sellers;
CREATE TABLE best_sellers (book_id integer(11) NOT NULL,
quantity integer(11) NOT NULL,
title varchar(75) NOT NULL
year_publd integer(11) NOT NULL,
isbn varchar(17) DEFAULT NULL,
list_price decimal(6,2) DEFAULT NULL,
PRIMARY KEY (book_id)
);
SET SERVEROUTPUT ON
SET VERIFY OFF
accept selection prompt "Please provide a number of best sellers "
DECLARE
amt NUMBER(5) := ('&selection.');
TYPE bk_record IS RECORD
(book_id bk_books.book_id%TYPE,
quantity bk_order_details.quantity%TYPE,
title bk_books.title%TYPE,
year_publd bk_books.year_publd%TYPE,
isbn bk_books.isbn%TYPE,
page_count bk_books.page_count%TYPE,
list_price bk_books.list_price%TYPE);
bk_record0 bk_record;
CURSOR bst_cur IS
SELECT bk_books.book_id, bk_order_details.quantity, bk_books.title, bk_books.year_publd, bk_books.isbn, bk_books.page_count, bk_books.list_price
FROM bk_books
JOIN bk_order_details
ON bk_books.book_id = bk_order_details.book_id;
BEGIN
OPEN bst_cur;
FETCH bst_cur into bk_record0;
CLOSE bst_cur;
INSERT INTO best_sellers
VALUES bk_record0;
END;
/
реляционная диаграмма
** Создайте блок PL / SQL, который определяет число n бестселлеров, где n равнозначение, предоставленное пользователем.Самые продаваемые книги - это книги с наибольшим количеством проданных книг.Таким образом, если пользователь введет число 5, будут найдены 5 самых продаваемых книг.
В декларативном разделе объявите запись для хранения book_id, количество, название, годопубликовано, isbn и цена по прайс-листу для всех книг.
В разделе исполняемых файлов заполните запись топ-n самых продаваемых из базы данных AcmeBooks, а затем вставьте запись в таблицу best_sellers.Обратите внимание, что это должно заполнить одну строку на книгу общим количеством, заказанным для каждой книги.
После вставки в таблицу best_sellers отобразите строки.
Протестируйте множество особых случаев и убедитесь, что блок обрабатывает его соответствующим образом, например, n = 0 или где n больше, чем количество книг в таблице bk_books.После каждого теста очищайте таблицу top_salaries. **
Я получаю сообщение об ошибке:
DECLARE * ERROR в строке 1: ORA-01722: неверный номерORA-06512: в строке 27
Что я делаю не так?