+ -
当前位置:首页 → 问答吧 → oracle存储过程游标返回问题

oracle存储过程游标返回问题

时间:2011-09-29

来源:互联网

这是我写存储过程打开游标部分:
open cur_out for
select a.barcode 条码, a.name 名称,a.Package 规格, NVL(a.order_qty,0) 订货数量, NVL(a.Qty,0) 已收数量 
from (select b.order_code,b.barcode,c.name,c.package,b.order_qty,b.qty from "SYSTEM"."pt_wh_take_items" b left join "SYSTEM"."pt_wh_goods" c on b.barcode=c.barcode )a where a.order_code=code;  



   
-- select ORDER_CODE, a.barcode 条码, b.name 名称,b.Package 规格, NVL(a.order_qty,0) 退库数量, NVL(a.Qty,0) 已退数量 from "SYSTEM"."pt_wh_back_items" a left join "SYSTEM"."pt_wh_goods" b on b.Barcode=a.Barcode where a.order_code=code;


现在的问题是:把查询语句改成注释部分的代码,游标没有返回数据,但用上面的查询语句游标是能返回数据的,请问这到底是怎么回事呢,请大侠指教

作者: tiandi_030   发布时间: 2011-09-29

不在任何条件,直接查询VIEW_TAKE_ITEMS看有没有数据呢?

作者: hanzs   发布时间: 2011-09-29

不用where也是能返回数据的

作者: tiandi_030   发布时间: 2011-09-29

select ORDER_CODE, a.barcode 条码, b.name 名称,b.Package 规格, NVL(a.order_qty,0) 退库数量, NVL(a.Qty,0) 已退数量 from "SYSTEM"."pt_wh_back_items" a left join "SYSTEM"."pt_wh_goods" b on b.Barcode=a.Barcode where a.order_code=code;

这样写

最后的WHERE 改成AND

select ORDER_CODE, a.barcode 条码, b.name 名称,b.Package 规格, NVL(a.order_qty,0) 退库数量, NVL(a.Qty,0) 已退数量 from "SYSTEM"."pt_wh_back_items" a left join "SYSTEM"."pt_wh_goods" b on b.Barcode=a.Barcode AND a.order_code=code;

作者: java3344520   发布时间: 2011-09-29

不可能出现这种现象吧,楼主是不是写的不对,游标出错了, ORDER_CODE是不是两个表都有这个字段啊

作者: lkz2004   发布时间: 2011-09-29