2017-06-17 111 views
0

当运行这个小脚本时,我收到错误“在index :: 1处缺少IN或OUT参数”不确定我在哪里犯错/ s?index:1缺少IN或OUT参数Oracle

{ 
DECLARE 
    LV_CODE_TXT VARCHAR (5) := 'A'; 
    LV_ORDERTOTAL_NUM NUMBER(6,2) := 100; 
    LV_DISCOUNT_NUM NUMBER(5,2); 
BEGIN 
    IF LV_CODE_TXT IN ('A','E') 
    THEN 
    LV_DISCOUNT_NUM =: LV_ORDERTOTAL_NUM * .05; 
    DBMS_OUPTUT.PUT_LINE (LV_DISCOUNT_NUM); 
    ELSIF LV_CODE_TXT IN ('B','C') 
    THEN 
    LV_DISCOUNT_NUM := LV_ORDERTOTAL_NUM * .10; 
    DBMS_OUTPUT.PUT_LINE (LV_DISCOUNT_NUM) 
    ELSIF LV_CODE_TXT = 'D' 
    THEN 
    LV_DISCOUNT_NUM := LV_ORDERTOTAL_NUM * .15; 
    DBMS_OUTPUT.PUT_LINE (LV_DISOCUNT_NUM); 
    ELSE 
    LV_DISOUNT_NUM := 0; 
    DBMS_OUTPUT.PUT_LINE(LV_DISOUNT_NUM); 
    END IF; 
END; 
} 
+0

这里“DBMS_OUPTUT” .PUT_LINE(LV_DISCOUNT_NUM ); –

+0

还不确定我需要改变什么?我需要将DBMS_OUTPUT放在双引号中吗?我改变了局部变量的拼写错误,但仍然无法工作。 – DKCroat

回答

1

你有几个拼写错误,语法错误,最重要的是你并不需要打开和关闭大括号({}),所以尝试以下

DECLARE 
    LV_CODE_TXT   VARCHAR (5) := 'A'; 
    LV_ORDERTOTAL_NUM NUMBER (6, 2) := 100; 
    LV_DISCOUNT_NUM  NUMBER (5, 2); 
BEGIN 
    IF LV_CODE_TXT IN ('A', 'E') 
    THEN 
     LV_DISCOUNT_NUM := LV_ORDERTOTAL_NUM * .05; 
     DBMS_OUTPUT.PUT_LINE(LV_DISCOUNT_NUM); 
    ELSIF LV_CODE_TXT IN ('B', 'C') 
    THEN 
     LV_DISCOUNT_NUM := LV_ORDERTOTAL_NUM * .10; 
     DBMS_OUTPUT.PUT_LINE (LV_DISCOUNT_NUM); 
    ELSIF LV_CODE_TXT = 'D' 
    THEN 
     LV_DISCOUNT_NUM := LV_ORDERTOTAL_NUM * .15; 
     DBMS_OUTPUT.PUT_LINE (LV_DISCOUNT_NUM); 
    ELSE 
     LV_DISCOUNT_NUM := 0; 
     DBMS_OUTPUT.PUT_LINE (LV_DISCOUNT_NUM); 
    END IF; 
END; 
+0

非常感谢您在添加代码时放置的{}括号。 – DKCroat

+0

@DKCroat不客气。 – user75ponic

相关问题