为什么我收到文件结束错误?

时间:2014-08-07 20:05:23

标签: oracle plsql triggers

在Oracle中,我不断收到PLS-00103错误(遇到符号"文件结束") 我玩过了;无济于事我找到了解决方案。任何人 知道我的代码片段可能有什么问题吗? (错误在第6行)

    1  Create or Replace Trigger TaxGeneration
    2  After Insert on Pay_records
    3  For each row
    4  DECLARE
    5  tax number;
    6  BEGIN
    7  number := new.Netsalary%type;
    8  dbms_output.put_line(number);
    9  END
    /

3 个答案:

答案 0 :(得分:2)

你错过了;在END;

END总是需要一个;

您也无法命名变量" number",这是一个保留的Oracle关键字。尝试使用new_number(或其他东西),看看它是否有效。

此外,删除"%类型"。这里没有必要。

Create or Replace Trigger TaxGeneration
After Insert on Pay_records
For each row
DECLARE
tax number;
BEGIN
    tax := :new.Netsalary;
    dbms_output.put_line(tax);
END;

答案 1 :(得分:2)

您的变量名称为" tax"," number"它是税收变量的类型。

尝试" tax:= new.Netsalary%type;"      " DBMS_OUTPUT.PUT_LINE(税);"

答案 2 :(得分:0)

number := new.Netsalary%type;

应该是

tax := :new.Netsalary; --considering tax is the correct variable to be used

number是一种数据类型,不能用作变量名。

%type是一个属性,可让您在自己的声明中复制字段,记录,嵌套表,数据库列或变量的数据类型。对于例如您不知道(或者懒得查找)表tax中列salary的数据类型,并且您希望变量l_tax与数据类型相同列tax,您只需声明l_tax salary.tax%TYPE;


END /

应该是

END; /

END;表示PLSQL块的结束,/告诉SQL * Plus执行PLSQL块。