Error en begin al querer crear un package con procedimiento

lo que pasa es que estoy tratando de hacer un package en oracle, pero me sale un error en el begin al momento de crear el procedimiento, he investigado el error que me sale el cual es:

PLS-00103: Se ha encontrado el símbolo "BEGIN" cuando se esperaba uno de los siguientes:

Pero en internet no me aparece nada coherente a lo que estoy buscando.

A continuación coloco es script el cual estoy empleando para dentro del package

create or replace package usuariosPersona as

procedure insertarPersona(
  PCedula persona.Cedula %TYPE,
  PNombreUno persona.NombreUno %TYPE,
  PNombreDos persona.NombreDos %TYPE,
  PApellidoUno persona.ApellidoUno %TYPE,
  PApellidoDos persona.ApellidoDos %TYPE,
  PDireccion persona.Direccion %TYPE,
  PNumeroTelefonico persona.NumeroTelefonico %TYPE,
  PCorreo persona.Correo %TYPE,
  PContrasenia persona.Contrasenia %TYPE,
  PFkResodencia persona.fkResidencia %TYPE
)
as
begin --Aqui aparece el error
insert into Persona (
  Cedula, 
  NombreUno, 
  NombreDos, 
  ApellidoUno, 
  ApellidoDos, 
  Direccion, 
  NumeroTelefonico, 
  Correo, 
  Contrasenia, 
  fkResidencia)
values (
  PCedula, 
  PNombreUno, 
  PNombreDos, 
  PApellidoUno, 
  PApellidoDos, 
  PDireccion, 
  PNumeroTelefonico, 
  PCorreo, 
  PContrasenia, 
  PFkResodencia);
exception
when others then
dbms_output.put_line('Error al insertar persona');
end insertarPersona;

end usuariosPersona;

y este es el error que me sale:

Imagen del error:

>Solution :

The very first line says that you’re creating a package specification:

create or replace package usuariosPersona as...

It only contains description of procedures and functions.

It is that package body

create or replace package BODY usuariosPersona as ...

that contains executable part of the code (i.e. the begin ... (which is what Oracle complained about)).

So: specification first:

create or replace package usuariosPersona as

procedure insertarPersona(
  PCedula persona.Cedula %TYPE,
  PNombreUno persona.NombreUno %TYPE,
  PNombreDos persona.NombreDos %TYPE,
  PApellidoUno persona.ApellidoUno %TYPE,
  PApellidoDos persona.ApellidoDos %TYPE,
  PDireccion persona.Direccion %TYPE,
  PNumeroTelefonico persona.NumeroTelefonico %TYPE,
  PCorreo persona.Correo %TYPE,
  PContrasenia persona.Contrasenia %TYPE,
  PFkResodencia persona.fkResidencia %TYPE
);
end;
/

Body next:

                          note the difference!
                          ----
create or replace package BODY usuariosPersona as

procedure insertarPersona(
  PCedula persona.Cedula %TYPE,
  PNombreUno persona.NombreUno %TYPE,
  PNombreDos persona.NombreDos %TYPE,
  PApellidoUno persona.ApellidoUno %TYPE,
  PApellidoDos persona.ApellidoDos %TYPE,
  PDireccion persona.Direccion %TYPE,
  PNumeroTelefonico persona.NumeroTelefonico %TYPE,
  PCorreo persona.Correo %TYPE,
  PContrasenia persona.Contrasenia %TYPE,
  PFkResodencia persona.fkResidencia %TYPE
)
as
begin --Aqui aparece el error
insert into Persona (
  Cedula, 
  NombreUno, 
  NombreDos, 
  ApellidoUno, 
  ApellidoDos, 
  Direccion, 
  NumeroTelefonico, 
  Correo, 
  Contrasenia, 
  fkResidencia)
values (
  PCedula, 
  PNombreUno, 
  PNombreDos, 
  PApellidoUno, 
  PApellidoDos, 
  PDireccion, 
  PNumeroTelefonico, 
  PCorreo, 
  PContrasenia, 
  PFkResodencia);
exception
when others then
dbms_output.put_line('Error al insertar persona');
end insertarPersona;

end usuariosPersona;

Leave a Reply