create or replace package MiPrimerPaquete is --creamos el encabezado
FUNCTION CUENTAEMPLEADOS(pDepto in employees.department_id%type) return number;
end MiPrimerPaquete;
create or replace package body MiPrimerPaquete is
function CUENTAEMPLEADOS(pDepto IN employees.department_id%type)
RETURN NUMBER AS
totalEmpleados integer;
begin
select count(*) into totalEmpleados
from Employees
where department_id = pDepto;
RETURN totalEmpleados;
end CUENTAEMPLEADOS;
end MiPrimerPaquete;
select MiPrimerPaquete.CUENTAEMPLEADOS(90) FROM DUAL;
viernes, 8 de junio de 2012
Triggers
create table autor(
id_autor int,
constraint pk_id_autor primary key(id_autor));
create table libro(
id_libro int,
id_autor int,
constraint pk_id_libro primary key(id_libro),
constraint fk_id_autor foreign key(id_autor) references autor);
ALTER TABLE libro
disable CONSTRAINT fk_id_autor;
insert into autor values(12);
insert into libro values(5,12);
delete from autor
where id_autor = 11;
select * from libro;
select * from autor;
after delete on autor
references old as libroViejo
for each row
begin
delete from libro
where id_autor = :libroviejo.id_autor;
end;
show err trigger miPrimerTrigger;
delete from autor
where id_autor = 11;
id_autor int,
constraint pk_id_autor primary key(id_autor));
create table libro(
id_libro int,
id_autor int,
constraint pk_id_libro primary key(id_libro),
constraint fk_id_autor foreign key(id_autor) references autor);
ALTER TABLE libro
disable CONSTRAINT fk_id_autor;
insert into autor values(12);
insert into libro values(5,12);
delete from autor
where id_autor = 11;
select * from libro;
select * from autor;
TRIGGER
create or replace trigger miPrimerTriggerafter delete on autor
references old as libroViejo
for each row
begin
delete from libro
where id_autor = :libroviejo.id_autor;
end;
show err trigger miPrimerTrigger;
delete from autor
where id_autor = 11;
Procedimientos Almacenados
-- Procedimiento Almacenado OUT
create or replace procedure primerProcedure (ptexto out varchar2) isbegin
ptexto := 'Este valor fue modificado en mi procAlmacenado!!';
end primerProcedure;
set serveroutput on
declare
vTexto varchar2(60) := 'Hola po CTM';
begin
primerProcedure(vTexto);
dbms_output.put_line('Mi Mensaje: '||vTexto);
end;
-- Procedimiento Almacenado IN OUT
create or replace procedure segundoProcedure (ptexto in out varchar2) isbegin
dbms_output.put_line('Mensaje de Inicio: '||pTexto);
ptexto := 'Este valor fue modificado en mi procAlmacenado!!';
end segundoProcedure;
set serveroutput on
declare
vTexto varchar2(60) := 'Hola po CTM';
begin
segundoProcedure(vTexto);
dbms_output.put_line('Mi Mensaje: '||vTexto);
end;
-- Procedimiento Almacenado CONCATENAR
create or replace procedure Concatenar (ptexto1 varchar2, ptexto2 varchar2) isbegin
dbms_output.put_line(pTexto1||' '||pTexto2);
end Concatenar;
show err procedure Concatenar;
set serveroutput on
declare
vTexto varchar2(60) := 'Hola po CTM';
begin
Concatenar('Buenas', 'Cachitas');
Concatenar(ptexto2=>'Buenas', ptexto1=>'Cachitas');
end;
-- Funciones
create or replace function funcParImpar(pNumero integer) ismsg varchar2(5) := 'Impar'
begin
if mod(pNumero,2) = 0 then
msg := 'Par';
end if;
return msg;
end;
create or replace function funcConcatenar(ptexto1 varchar(2), ptexto2 varchar(2)) is
begin
return ptexto1||' '||ptexto2;
end;
select funcConcatenar('7')
Suscribirse a:
Entradas (Atom)