本帖最后由 newkid 于 2018-4-27 22:36 编辑
(原发表于 2011-9-16)
最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。
每两周的优胜者可获得itpub奖励的技术图书一本。
以往旧题索引:
http://www.itpub.net/forum.php?m ... =typeid&typeid=1808
原始出处:
http://www.plsqlchallenge.com/
作者:koko
运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品
我创建了如下函数:
CREATE OR REPLACE FUNCTION plch_Term(p_FromDateDATE
,p_TillDateDATE
)
RETURN NUMBER
IS
BEGIN
RETURN p_TillDate - p_FromDate + 1;
END;
/
哪些选项中的代码块执行之后会显示 "1" ?
(A)
BEGIN
dbms_output.put_line(TO_CHAR(plch_Term(SYSDATE, SYSDATE)));
END;
/
(B)
DECLARE
lnTerm NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT plch_Term(:p_Date, :p_Date)
FROM SYS.DUAL
'
INTO lnTerm
USING SYSDATE, SYSDATE;
dbms_output.put_line(TO_CHAR(lnTerm));
END;
/
(C)
DECLARE
lnTerm NUMBER;
BEGIN
EXECUTE IMMEDIATE 'BEGIN
:p_Term := plch_Term(:p_Date, :p_Date);
END;
'
USING OUT lnTerm, SYSDATE, SYSDATE;
dbms_output.put_line(TO_CHAR(lnTerm));
END;
/
(D)
DECLARE
lnTerm NUMBER;
BEGIN
EXECUTE IMMEDIATE 'BEGIN
:p_Term := plch_Term(:p_Date, :p_Date);
END;
'
USING OUT lnTerm, SYSDATE;
dbms_output.put_line(TO_CHAR(lnTerm));
END;
/
|