Plsql PLS-00103功能结束时的错误

Plsql PLS-00103功能结束时的错误,plsql,oracle10g,oracle-xe,pls-00103,Plsql,Oracle10g,Oracle Xe,Pls 00103,接收到与函数相关的以下错误: '第20行错误:PLS-00103:在预期以下情况之一时遇到符号“文件结束”:结束非pragma最终可实例化订单覆盖静态成员构造函数映射0.01秒 感谢您的任何建议……声明应以分号而不是逗号结尾: PricePerBug FLOAT; NumberOfBugs NUMBER; TotalIncome FLOAT; 关于异常处理,还有其他与此错误无关的问题: 如果找不到任何数据,则 (不会的)你会得到 错误“ORA-06503:PL/SQL:Function 返回时

接收到与函数相关的以下错误:

'第20行错误:PLS-00103:在预期以下情况之一时遇到符号“文件结束”:结束非pragma最终可实例化订单覆盖静态成员构造函数映射0.01秒


感谢您的任何建议……

声明应以分号而不是逗号结尾:

PricePerBug FLOAT;
NumberOfBugs NUMBER;
TotalIncome FLOAT;
关于异常处理,还有其他与此错误无关的问题:

  • 如果找不到任何数据,则 (不会的)你会得到 错误“ORA-06503:PL/SQL:Function 返回时没有值“因为您 处理异常,但不要 返回一个值

  • 如果曾经引发过太多的行(不会),您将得到一个错误,因为您无法从只返回FLOAT类型值的函数返回文本“返回的行太多…”

  • 如果出现任何其他异常(可能是),您将不知道它是什么,因为您用自己的“未知异常”消息替换了有用的Oracle异常
  • 此特定函数的正确错误处理量为无,即:

    CREATE OR REPLACE FUNCTION Function1
    RETURN FLOAT
    IS 
        PricePerBug FLOAT;
        NumberOfBugs NUMBER;
        TotalIncome FLOAT;
    BEGIN
        SELECT SUM(ProjectValue) INTO TotalIncome FROM tblProject;
        SELECT COUNT(idBug) INTO NumberOfBugs FROM tblBug;
        PricePerBug := (NumberOfBugs)/(TotalIncome);
        RETURN PricePerBug;
    END Function1;
    
    CREATE OR REPLACE FUNCTION Function1
    RETURN FLOAT
    IS 
        PricePerBug FLOAT;
        NumberOfBugs NUMBER;
        TotalIncome FLOAT;
    BEGIN
        SELECT SUM(ProjectValue) INTO TotalIncome FROM tblProject;
        SELECT COUNT(idBug) INTO NumberOfBugs FROM tblBug;
        PricePerBug := (NumberOfBugs)/(TotalIncome);
        RETURN PricePerBug;
    END Function1;