【问题标题】:SQL query returns necessary data, but the procedure doesn'tSQL 查询返回必要的数据,但过程不返回
【发布时间】:2020-08-08 16:48:25
【问题描述】:

我需要创建一个从两个表返回条目列表的过程。这是该过程的代码:

create or replace PROCEDURE goods_to_transfer
    IS
     begin
        for rec in (select sales.good_id, sales.good_count, goods.priority 
                    FROM goods,sales 
                    where sales.good_id=goods.id and sales.delivered='YES');
 
    loop
        
    dbms_output.put_line( 'GOOD ID' || rec.good_id);
    dbms_output.put_line( 'GOOD COUNT' || rec.good_count);
    dbms_output.put_line( 'PRIORITY' || rec.good_priority);

   end loop;
     end goods_to_transfer;

执行最终会出现以下错误:

ORA-01403: 未找到数据 ORA-06512: 在“C##XSENIA.GOODS_TO_TRANSFER”第 7 行 ORA-06512: 在第 2 行

同样的查询返回所有必要的数据:

select sales.good_id, sales.good_count, goods.priority FROM goods,sales 
        where sales.good_id=goods.id and sales.delivered='YES'

我想知道是否有人可以告诉我,我做错了什么。 谢谢!

【问题讨论】:

  • 您发布的代码 a) 无效,b) 无法永远返回 ORA-01403,所以 - 如果您想获得有用的答案,请发布有用的问题。跨度>

标签: oracle-sqldeveloper


【解决方案1】:

尝试删除 ;在请求结束时

for rec in (select sales.good_id, sales.good_count, goods.priority 
                    FROM goods,sales 
                    where sales.good_id=goods.id and sales.delivered='YES')

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2014-04-19
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多