【问题标题】:PACKAGE BODY MISTAKE包体错误
【发布时间】:2021-11-20 13:59:11
【问题描述】:
-- PACKAGE SPECIFICATION OR HEADER
CREATE OR REPLACE PACKAGE pkg_Answer2 IS
  FUNCTION grade_std(marks NUMBER) RETURN VARCHAR2;
END pkg_Answer2;
/

--PACKAGE BODY
CREATE OR REPLACE PACKAGE BODY pkg_Answer2 IS 
  --FUNCTION IMPLEMENTATION
  FUNCTION grade_std(marks NUMBER) RETURN VARCHAR2 IS
    BEGIN 
      IF marks>90 THEN 
        RETURN 'A';
      ELSIF marks<=90 AND marks>80 THEN 
        RETURN 'B';
      ELSIF marks<=80 AND marks>70 THEN  
        RETURN 'C';
      ELSIF marks<=70 AND marks>60 THEN 
        RETURN 'D';
      ELSIF marks<=60
        RETURN 'F';
      ELSE
        RETURN 'I';
      END IF;
    END grade_std;
   
END pkg_Answer2;

包体显示错误:

错误:包体 PKG_ANSWER2 Line/Col:14/9 PLS-00103:在预期以下情况之一时遇到符号“RETURN”:

  • & - + / 在 mod 余数 rem 然后 和或 ||多组

BU ENCOUNTER SYMBOL RETURN THUS I AM UNABLE TO CREATE PACKAGE BODY 是什么意思

【问题讨论】:

  • 你应该避免全部大写写出你的整个问题 - 这通常被认为是在你的听众中大喊,它是粗鲁和冒犯,并大大降低人们花时间阅读您的问题并提供答案的机会。不要这样做 - 只是不要。
  • 好的,先生,下次我会考虑的????

标签: plsql package


【解决方案1】:

这是基本的调试,你不应该在堆栈溢出时问这个。所有信息都在您的问题中。 要了解发生了什么:

  • 在 sql developer 等工具中打开创建的包。该工具突出显示发生错误的行(第 14 行,如错误所示)
  • 检查第 14 行周围发生的情况...
13      ELSIF marks<=60
14        RETURN 'F';
15      ELSE
  • 错误状态为“遇到符号“RETURN”时“。这意味着它无法编译,因为前面的表达式没有正确的语法并且“RETURN”这个词在那里没有任何意义......所以检查之前的行。那是第 13 行。它没有 THEN 关键字。你的错误。

【讨论】:

  • 好的,我会从下一点开始考虑,先生?
  • @Shubham,如果答案对您有帮助,请按照说明接受它here
猜你喜欢
  • 2014-06-04
  • 1970-01-01
  • 2012-10-13
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多