请问一下我这段代码是哪里错了啊,看提示但不知道怎么解决谢谢!
SQL> create or replace package sp_package is
2 procedure update_sal(name varchar2,newSal number)
3 is
4 begin
5 update emp set sal=newSal where ename=name;
6 end;
7 function function_income(name varchar2)
8 return number is
9 fun_salary number;
10 begin
11 select sal*12 + nvl(comm,0)*12 into fun_salary from emp
12 where ename=name;
13 return fun_salary;
14 end;
15 end;
16 /Warning: Package created with compilation errorsSQL> show error;
Errors for PACKAGE SCOTT.SP_PACKAGE:
--显示的错误信息看不明白,不知道什么意思。
LINE/COL ERROR
-------- -----------------------------------------------------------------------------------------------------------------------------------------
4/1 PLS-00103: 出现符号 "BEGIN"在需要下列之一时: language
7/1 PLS-00103: 出现符号 "FUNCTION"在需要下列之一时: end not pragma final instantiable order overriding static member constructor map
SQL> create or replace package sp_package is
2 procedure update_sal(name varchar2,newSal number)
3 is
4 begin
5 update emp set sal=newSal where ename=name;
6 end;
7 function function_income(name varchar2)
8 return number is
9 fun_salary number;
10 begin
11 select sal*12 + nvl(comm,0)*12 into fun_salary from emp
12 where ename=name;
13 return fun_salary;
14 end;
15 end;
16 /Warning: Package created with compilation errorsSQL> show error;
Errors for PACKAGE SCOTT.SP_PACKAGE:
--显示的错误信息看不明白,不知道什么意思。
LINE/COL ERROR
-------- -----------------------------------------------------------------------------------------------------------------------------------------
4/1 PLS-00103: 出现符号 "BEGIN"在需要下列之一时: language
7/1 PLS-00103: 出现符号 "FUNCTION"在需要下列之一时: end not pragma final instantiable order overriding static member constructor map
create or replace package sp_package is
procedure update_sal(name varchar2,newSal number);
function function_income(name varchar2)
return number;
end;
/
--再创建包体
create or replace package body sp_package is procedure update_sal(name varchar2,newSal number)
is
begin
update emp set sal=newSal where ename=name;
end; function function_income(name varchar2)
return number
is
fun_salary number;
begin
select sal*12 + nvl(comm,0)*12 into fun_salary from emp
where ename=name;
return fun_salary;
end;
end sp_package;
/
--先创建包的申明信息
CREATE OR REPLACE PACKAGE sp_package IS
PROCEDURE update_sal(NAME VARCHAR2, newSal NUMBER);
FUNCTION function_income(NAME VARCHAR2) RETURN NUMBER;
END;
/
--再创建包体
CREATE OR REPLACE PACKAGE BODY sp_package IS
PROCEDURE update_sal(NAME VARCHAR2, newSal NUMBER) IS
BEGIN
UPDATE emp SET sal = newSal WHERE ename = NAME;
END; FUNCTION function_income(NAME VARCHAR2) RETURN NUMBER IS
fun_salary NUMBER;
BEGIN
SELECT sal * 12 + nvl(comm, 0) * 12 INTO fun_salary FROM emp WHERE ename = NAME;
RETURN fun_salary;
END;
END sp_package;
/
orcle中pl/sql包分包头和包体两部分,包头用来声明过程,函数,游标或者常量等,它的访问范围在整个用户下,包体是用来对包头中申明的过程,函数。的具体定义。
PROCEDURE update_sal(NAME VARCHAR2, newSal NUMBER);
FUNCTION function_income(NAME VARCHAR2) RETURN NUMBER;
END;--再创建包体
CREATE OR REPLACE PACKAGE BODY sp_package IS PROCEDURE update_sal(NAME VARCHAR2, newSal NUMBER) IS
BEGIN
UPDATE emp SET sal = newSal WHERE ename = NAME;
END; FUNCTION function_income(NAME VARCHAR2) RETURN NUMBER IS
fun_salary NUMBER;
BEGIN
SELECT sal * 12 + nvl(comm, 0) * 12 INTO fun_salary FROM emp WHERE ename = NAME;
RETURN fun_salary;
END;
END sp_package;在PL/SQL 中执行还是有错误的。
CREATE OR REPLACE PACKAGE BODY sp_package IS
Compilation errors for PACKAGE SYS.SP_PACKAGEError: PLS-00103: Encountered the symbol "CREATE"
Line: 7
Text: CREATE OR REPLACE PACKAGE BODY sp_package IS