日期:2014-05-17  浏览次数:20783 次

请教一个SQL语句的问题
是这样的
小弟定义变量如下
big_trade   PRODUSRTB.WMRPT_BIGTRADE%rowtype;
TYPE   ref_cursor_type   is   REF   CURSOR;
select_cursor   ref_cursor_type   ;
PRODUSRTB.WMRPT_BIGTRADE这张表中间   有A,B,C,D,E,5列。游标select_cursor
是select   a,b   from   table   b   where;
现在问题是这样的   我要把游标的查询结果   写到   big_trade.A,big_trade.C   怎么实现这个问题?   请各位不吝赐教


------解决方案--------------------
如果查询select a,b from table b where...只返回一行,可以
open select_cursor;
fetch select_cursor into big_trade;
但如果查询出来的结果集多于1行,那么无法将结果一次写入到一个big_trade变量中。
------解决方案--------------------
IF NOT select_cursor%ISOPEN THEN(看游标是否打开)
OPEN emp_cursor;(打开游标)
END IF;
LOOP
FETCH select_cursor INTO big_trade.A,big_trade.C;(将值放入变量,FETCH一次只能处理一行数据)
EXIT WHEN select_cursor%NOTFOUND;(%FOUND表示获得数据,%NOTFOUND表示没有获得数据)

END LOOP;
close select_cursor;(关闭游标)