Пакет состоит из его спецификации и корпуса. Например:
SQL> create or replace package pk_mac as
2 procedure pr_pruebas (p_idnum in number);
3 end;
4 /
Package created.
SQL> create or replace package body pk_mac as
2 procedure pr_pruebas (p_idnum in number)
3 is
4 l_ename emp.ename%type;
5 begin
6 select ename
7 into l_ename
8 from emp
9 where empno = p_idnum;
10
11 dbms_output.put_line(l_ename);
12 end;
13 end;
14 /
Package body created.
Тестирование:
SQL> set serveroutput on
SQL>
SQL> exec pk_mac.pr_pruebas(7654);
MARTIN
PL/SQL procedure successfully completed.
SQL>
Или, в вашем случае:
SQL> create or replace PACKAGE PK_MAC AS
2 PROCEDURE PR_PRUEBAS
3 (IDNUM NUMBER := 0,
4 NOMBRES VARCHAR2 := 'Usuario',
5 FECHANACIMIENTO DATE := SYSDATE,
6 ARCHIVOS CLOB := '');
7 end;
8 /
Package created.
SQL>
SQL> create or replace PACKAGE body PK_MAC AS
2 PROCEDURE PR_PRUEBAS
3 (IDNUM NUMBER := 0,
4 NOMBRES VARCHAR2 := 'Usuario',
5 FECHANACIMIENTO DATE := SYSDATE,
6 ARCHIVOS CLOB := '')
7 is
8 begin
9 null;
10 end;
11 end;
12 /
Package body created.
SQL>
Обратите внимание, что при использовании select
оператор в PL / SQL - вы должны поместить результат into
в нечто (например, переменную, как я делал в моем примере). Вы не можете просто SELECT * FROM MAC
...