首页 文章

PL / SQL编译错误与声明变量

提问于
浏览
0

我正在尝试创建一个基本的PL / SQL查询,其中我使用某个SKU作为参数,这样我就可以在不每次键入sku的情况下引用它 .

编译我的代码时,我得到错误:

错误报告:ORA-06550:第6行,第1列:PLS-00428:此SELECT语句中预计会出现INTO子句06550. 00000 - “行%s,列%s:\ n%s”*原因:通常是PL / SQL编译错误 . *行动:

这是我的代码:

declare
myitem number (20);
begin 
myitem := 1000956;

select f.order_no
from fdt_maptool f
where f.item = myitem;

end; 
/

我想也许这与我使用VARCHAR(20)而不是NUMBER有关,所以我也试过了 .

declare
myitem number;
begin 
myitem := 1000956;

select f.order_no
from fdt_maptool f
where f.item = myitem;

end; 
/

然后收到此错误:

错误报告:ORA-06550:第6行,第1列:PLS-00428:此SELECT语句中预计会出现INTO子句06550. 00000 - “行%s,列%s:\ n%s”*原因:通常是PL / SQL编译错误 . *行动:

我是PL / SQL的新手,所以如果请放轻松我吧!

1 回答

  • 2

    在PLSQL中你需要选择

    declare
       myitem number(20);
       myorder number(20);
    begin 
       myitem := 1000956;
    
       select f.order_no
       into myorder
       from fdt_maptool f
       where f.item = myitem;
    
    end; 
    /
    

    现在有两个可能出错的标准事项 . 您可能找不到记录,也可能找不到多条记录 . 您需要异常处理程序来处理这些情况 .

    declare
       myitem number(20);
       myorder number(20);
    begin 
       myitem := 1000956;
    
       select f.order_no
       into myorder
       from fdt_maptool f
       where f.item = myitem;
    
    exception
       when no_data_found then
        dbms_output.put_line('No record with this ID');
    
       -- Only needed when not selecting a unique column.
       when too_many_rows then
        dbms_output.put_line('More than one record with this ID');
    
    end; 
    /
    

    请注意,too_many_rows异常通常已经包含在您选择具有在其上定义的唯一约束的ID列的事实中 .

相关问题