Oracle存储过程中的错误 [英] Error in Oracle stored procedure

查看:75
本文介绍了Oracle存储过程中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试创建此存储过程时,出现错误:

When trying to create this stored procedure, I'm getting an error:

PLS-00428:此SELECT语句中应有一个INTO子句

代码:

CREATE OR REPLACE PROCEDURE FindDb(
       P_BookId IN BOOKMASTER.BookId%TYPE,
       p_PublisherCode OUT BOOKMASTER.PUBLISHERCODE%TYPE,
       p_ISBNCode OUT BOOKMASTER.ISBNCODE%TYPE,
       p_BookName OUT BOOKMASTER.BOOKNAME%TYPE,
    p_BookType OUT BOOKMASTER.BOOKTYPE%TYPE,
    p_BookLevel OUT BOOKMASTER.BOOKLEVEL%TYPE,
    p_BookCategory OUT BOOKMASTER.BOOKCATEGORY%TYPE,
    p_AuthorNames OUT BOOKMASTER.AUTHORNAMES%TYPE,
    p_PublishedYear OUT BOOKMASTER.PUBLISHEDYEAR%TYPE,
    p_CostPrice OUT BOOKMASTER.COSTPRICE%TYPE,
    p_MRP OUT BOOKMASTER.MRP%TYPE,
    p_BookImage OUT BOOKMASTER.BOOKIMAGE%TYPE)
 AS
BEGIN

  SELECT  PUBLISHERCODE, ISBNCODE, BOOKNAME,BOOKTYPE,BOOKLEVEL,BOOKCATEGORY
 ,AUTHORNAMES,PUBLISHEDYEAR,COSTPRICE,MRP,BOOKIMAGE
  FROM  BOOKMASTER WHERE BOOKID = p_BookId;

END FindDb;
/

推荐答案

在Oracle存储过程中,我们必须将值选择为变量或out参数.请阅读文档.

In Oracle stored procedure we have to SELECT values into either variables or out parameters. Please read the docs.

尝试通过以下方式创建存储过程.

Try to create your stored procedure in the following manner.

CREATE OR REPLACE PROCEDURE finddb (
    p_bookid            IN   bookmaster.bookid%TYPE,
    p_publishercode     OUT bookmaster.publishercode%TYPE,
    p_isbncode              OUT bookmaster.isbncode%TYPE,
    p_bookname              OUT bookmaster.bookname%TYPE,
    p_booktype              OUT bookmaster.booktype%TYPE,
    p_booklevel             OUT bookmaster.booklevel%TYPE,
    p_bookcategory      OUT bookmaster.bookcategory%TYPE,
    p_authornames           OUT bookmaster.authornames%TYPE,
    p_publishedyear     OUT bookmaster.publishedyear%TYPE,
    p_costprice             OUT bookmaster.costprice%TYPE,
    p_mrp                   OUT bookmaster.mrp%TYPE,
    p_bookimage             OUT bookmaster.bookimage%TYPE
)
AS
BEGIN
    SELECT  publishercode,
                isbncode,
                bookname,
                booktype,
                booklevel,
                bookcategory,
                authornames,
                publishedyear,
                costprice,
                mrp,
                bookimage
      INTO  p_publishercode,
                p_isbncode,
                p_bookname,
                p_booktype,
                p_booklevel,
                p_bookcategory,
                p_authornames,
                p_publishedyear,
                p_costprice,
                p_mrp,
                p_bookimage
      FROM  bookmaster
     WHERE  bookid = p_bookid;
END finddb;
/

这篇关于Oracle存储过程中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆