创建一个存储过程 查询《Oracle12c数据库基础教程》的图书信息,并输出其书号,书名,作者,零售价格。如果该书不存在,则插入一条新纪录(书号:978-7-122-18619-10,书名:Oracle12c数据库基础教程,作者:孙风栋,出版时间:2021-2-1,出版社ID:1,批发价:32,零售价:40,图书类型:计算机)。
时间: 2024-02-11 12:04:31 浏览: 99
好的,以下是创建存储过程查询并插入《Oracle12c数据库基础教程》的SQL语句:
```
CREATE PROCEDURE query_or_insert_book
IS
v_book_id book.book_id%TYPE;
v_book_name book.book_name%TYPE;
v_author book.author%TYPE;
v_price book.price%TYPE;
BEGIN
SELECT book_id, book_name, author, price
INTO v_book_id, v_book_name, v_author, v_price
FROM book
WHERE book_name = 'Oracle12c数据库基础教程';
DBMS_OUTPUT.PUT_LINE('书号:'||v_book_id||',书名:'||v_book_name||',作者:'||v_author||',零售价格:'||v_price);
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO book (book_id, book_name, author, publication_date, publisher_id, wholesale_price, price, category_id)
VALUES ('978-7-122-18619-10', 'Oracle12c数据库基础教程', '孙风栋', '2021-2-1', 1, 32, 40, '计算机');
DBMS_OUTPUT.PUT_LINE('《Oracle12c数据库基础教程》不存在,已插入新纪录');
END;
```
以上存储过程中,先查询《Oracle12c数据库基础教程》的图书信息,如果存在则输出相关信息;如果不存在,则插入一条新纪录并输出相应的提示信息。在执行该存储过程时,可以使用以下语句:
```
EXECUTE query_or_insert_book;
```
注:以上语句中的表名、字段名、值等需要根据实际情况进行修改。
阅读全文