oracle open for using的用法,PL/SQL Challenge 每日一题:2015-2-11 用OPEN FOR语句控制游标变量...

(原发表于2010-10-13)

最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。

以往旧题索引:

http://www.itpub.net/forum.php?m ... eid&typeid=1808

原始出处:

http://www.plsqlchallenge.com/

作者:Steven Feuerstein

运行环境:SQLPLUS, SERVEROUTPUT已打开

注:本题给出答案时候要求给予简要说明才能得到奖品

我创建了一张表并填充数据,让后创建了一个函数来从这张表中读取数据:

CREATE TABLE plch_parts

(

partnum    INTEGER

, partname   VARCHAR2 (100)

)

/

BEGIN

INSERT INTO plch_parts

VALUES (1, 'Mouse');

INSERT INTO plch_parts

VALUES (100, 'Keyboard');

INSERT INTO plch_parts

VALUES (500, 'Monitor');

COMMIT;

END;

/

CREATE OR REPLACE FUNCTION parts_data (name_like_in IN VARCHAR2)

RETURN SYS_REFCURSOR

IS

l_return   SYS_REFCURSOR;

BEGIN

OPEN l_return FOR

SELECT *

FROM plch_parts

WHERE partname LIKE name_like_in

ORDER BY partname;

RETURN l_return;

END parts_data;

/

I then write the following block:

DECLARE

l_data   SYS_REFCURSOR;

l_row    plch_parts%ROWTYPE;

BEGIN

/*OPEN*/

LOOP

FETCH l_data INTO l_row;

EXIT WHEN l_data%NOTFOUND;

DBMS_OUTPUT.put_line (l_row.partname);

END LOOP;

END;

/

下列哪些选项可用来取代/*OPEN*/注释,使得代码块执行之后会显示如下两行文本?

Monitor

Mouse

(A)

l_data := parts_data ('M%');

(B)

OPEN l_data FOR

SELECT *

FROM plch_parts

WHERE partname LIKE 'M%'

ORDER BY partname;

(C)

OPEN l_data FOR parts_data ('M%');

(D)

l_data := parts_data ('M%');

OPEN l_data;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值