您好,我正在做学术作业,我的程序块执行部分需要帮助。我正在尝试使用用户输入内容插入表格(畅销书)。任何帮助将不胜感激。
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和定价。
在可执行部分中,用AcmeBooks数据库的前n个畅销书填充记录,然后将记录插入best_sellers表中。请注意,这应在每本书的每一行中填充每本书订购的总数量。
插入best_sellers表后,显示行。
测试各种特殊情况,并确保该块能够正确处理它,例如n = 0或其中n大于bk_books表中的书数。每次测试后清空top_salaries表。**
我收到错误:
DECLARE *在第1行出现错误:ORA-01722:无效编号ORA-06512:在第27行
我在做什么错了?