http://www.itpub.net/thread-1499223-12-1.html

113楼

下面的选项都实现了这个过程:

CREATEORREPLACEPROCEDUREplch_show_lowest(number1_inINNUMBER,number2_inINNUMBER,number3_inINNUMBER)IS

哪一种能够显示传入的三个数中最小的一个?假设传给plch_show_lowest的实际值都不为空。

(A)

BEGINDBMS_OUTPUT.put_line(LEAST(number1_in,LEAST(number2_in,number3_in)));END;

(B)

BEGINDBMS_OUTPUT.put_line(SMALLEST(number1_in,number2_in,number3_in));END;

(C)

BEGINDBMS_OUTPUT.put_line(MIN(number1_in,number2_in,number3_in));END;

(D)

l_lowestNUMBER;BEGINSELECTLEAST(number1_in,number2_in,number3_in)INTOl_lowestFROMDUAL;DBMS_OUTPUT.put_line(l_lowest);END;

(E)

l_lowestNUMBER:=number1_in;BEGINIFnumber2_in<l_lowestTHENl_lowest:=number2_in;ENDIF;IFnumber3_in<l_lowestTHENl_lowest:=number3_in;ENDIF;DBMS_OUTPUT.put_line(l_lowest);END;

(F)

BEGINDBMS_OUTPUT.put_line(LEAST(number1_in,number2_in,number3_in));END;

实测

B报错PLS-00201: 必须声明标识符 'SMALLEST'

C报错PLS-00103: 出现符号 ")"在需要下列之一时: := . ( % ; 符号 "(" 被替换为 ")" 后继续。

ADEF均正确