为什么我得到ORA:0922错误:缺少或无效选项

时间:2014-08-06 17:31:11

标签: oracle stored-procedures plsql

以下程序有什么问题?我检查了代码的语法错误,但我找不到。

CREATE OR REPLACE Edit_premium_amt
    (
      policy_number IN number(4),
      new_premium_type  IN varchar2(4)
    )

    IS

    discount_amount number(6,2);
    premium_amts    number(11,2);
    policy_amts     number(11);
    dur             number(5);
    prem_type       varchar2(4);
    disc_weigh      varchar2(2);
    disc_perc       number(2);
    prem_type_int   number(2,1);

    BEGIN

    prem_type:=new_premium_type;

    UPDATE policy SET premium_type=new_premium_type WHERE policy_id=policy_number;

    SELECT policy_amt,duration INTO policy_amts,dur WHERE policy_id=policy_number;

    SELECT disc_weightage INTO disc_weigh FROM disc_details WHERE duration=dur;

    SELECT percent INTO disc_perc FROM disc_calculation WHERE premium_type=prem_type AND 

    weightage=disc_weigh;

    CASE prem_type

        WHEN 'HY' THEN prem_type_int:=2.0;
        WHEN 'Y' THEN prem_type_int:=1.0;

    ELSE  prem_type_int:=0.5;
    END CASE;

    discount_amount:= ((policy_amts)/dur)/prem_type_int))*disc_perc;

    premium_amts:=policy_amts-discount_amount;

    UPDATE policy SET premium_amt=premium_amts
    WHERE policy_id=policy_number;

END Edit_premium_amt;

1 个答案:

答案 0 :(得分:1)

您必须说出您正在创建或替换的内容

在这种情况下CREATE OR REPLACE PROCEDURE Edit_premium_amt............