1

Oracle 10g (pl/sql) で次のコードを実行する場合

DECLARE 
    A NUMBER;
    B NUMBER;
BEGIN:
     A:=&N;
     B:=&M;
 IF (A>B)
     DBMS_OUTPUT.PUT_LINE('THE MAXIMUM OF TWO NUMBER IS:' || TO_CHAR(A));
 ELSE 
    DBMS_OUTPUT.PUT_LINE('THE MAXIMUM OF TWO NUMBERS IS:' || TO_CHAR(B));
 END IF;
END;

「BIND VARIABLE "A" NOT DECLARED」というエラーが表示されますが、その理由がわかりません。これは何が原因ですか?

4

1 に答える 1

4

コードにはいくつか問題があります。

最初の問題は、 の後にコロンがあってはならないことBEGINです。あなたが書いたものは、Oracle によって として解釈されています。これBEGIN :A := ...は、バインド変数に関するエラーが発生する理由を説明するはずですA

2 番目の問題は、行にありIF (A>B)ます。THEN末尾に a を追加する必要があります。

ちなみに、 を使用GREATEST(A, B)して 2 つの数値のうち大きい方を返すことができます。

于 2012-06-24T16:08:30.970 に答える