Oracle 为什么我得到ORA:0922错误:缺少或无效选项
以下程序有什么问题??我已经检查了代码的语法错误,但找不到语法错误Oracle 为什么我得到ORA:0922错误:缺少或无效选项,oracle,stored-procedures,plsql,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
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;
您必须说出您正在创建或替换的内容
在这种情况下,
创建或更换程序编辑\u premium\u amt………
weightage=disc\u weight代码>不是赋值,而是相等性测试。你忘了带分号。另外,欢迎来到堆栈溢出。在发帖时,请务必包含完整的错误。Oracle应该给你一个行号来识别这个错误。我是说上面的冒号。。。另外,仔细看,您不需要分号来结束案例陈述的THEN子句。我已经更正了分号。但我仍然得到相同的错误。我得到的是最终错误“ORA-00922:缺少或无效选项”。。它没有给出任何行号。请告诉我是否有任何方法可以在错误信息中启用。我使用的是oracle 10g XE.weightage=disc\u weight;它实际上只是一个比较,而不是赋值。它是一个create语句。但我一直使用相同的语法。i、 e.创建或替换。选择保单金额、持续时间到保单金额、期间,其中保单id=保单编号;没有where子句。。找到解决办法了吗