编写一个PL/SQL语句块,查询《Oracle数据库应用教程》的图书价格,如果该书不存在,则输出‘查无此书!’;如果存在多本同名图书,则输出其ISBN,书名,出版社,价格。
时间: 2024-05-12 13:15:43 浏览: 9
下面是一个简单的PL/SQL语句块,可以实现上述功能:
```
DECLARE
book_price NUMBER;
book_isbn VARCHAR2(20);
book_name VARCHAR2(100);
book_publisher VARCHAR2(100);
BEGIN
SELECT price, isbn, name, publisher INTO book_price, book_isbn, book_name, book_publisher
FROM books
WHERE name = 'Oracle数据库应用教程';
DBMS_OUTPUT.PUT_LINE('ISBN: ' || book_isbn || ', 书名: ' || book_name || ', 出版社: ' || book_publisher || ', 价格: ' || book_price);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('查无此书!');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('存在多本同名图书!');
END;
```
该语句块中,首先使用一个SELECT语句查询指定书名的图书信息,并将结果存储到对应的变量中。如果查询结果为空,则抛出NO_DATA_FOUND异常,输出‘查无此书!’;如果查询结果多于一行,则抛出TOO_MANY_ROWS异常,输出‘存在多本同名图书!’。最后,如果查询结果只有一行,则输出图书信息。