Getting error while Executing Package

后端 未结 3 355
孤独总比滥情好
孤独总比滥情好 2020-12-21 08:27

Table Structure:

Name       Null Type         
---------- ---- ------------ 
DPT_NO          NUMBER       
SALARY          NUMBER(10)   
PERIOD          VARC         


        
相关标签:
3条回答
  • 2020-12-21 08:32

    The package needs a specification (i.e. a separate interface definition) as the error message says. You would have to add something like before the definition of the package body (i.e. its implementation):

    CREATE OR REPLACE package salary_sal AS
       PROCEDURE find_sal(c_dpt_no salary.dpt_no%TYPE);
    END salary_sal;
    /
    
    0 讨论(0)
  • 2020-12-21 08:33

    You're missing the declaration of the package. The idea is to separate the declaration of the package ("the header", if you will), so other packages/procedures/functions can compile against it from the body (the implementation).

    In your case, you'd need something like:

    CREATE OR REPLACE package salary_sal AS
       PROCEDURE find_sal(c_dpt_no salary.dpt_no%TYPE);
    END salary_sal;
    

    Now, once the package is declared, you can create its body:

    CREATE OR REPLACE package body salary_sal AS
       PROCEDURE find_sal(c_dpt_no salary.dpt_no%TYPE) IS
       c_sal salary.salary%TYPE;
       BEGIN
          SELECT salary INTO c_sal
          FROM salary
          WHERE c_dpt_no= 108;
          dbms_output.put_line('Salary: '|| c_sal);
       END find_sal;
    END salary_sal;
    
    0 讨论(0)
  • 2020-12-21 08:38

    You neeed to create a package specifications and then only you can create a package body.

    You need to execute the package i.e you execute the stored procedures,functions etc in the package.

    0 讨论(0)
提交回复
热议问题