Professional Documents
Culture Documents
declare
TYPE emp_registro is RECORD
(employee_id number,
first_name varchar2(20),
last_name varchar2(20)
);
empleado emp_registro;
empleado employees%type;
begin
select employee_id, first_name, last_name
into empleado
from employees
where employee_id=110;
------------------------ INSERT
COMMIT
---------------------------------------------- UPDATE
<<<<<<<<<<< CON HR >>>>>>>>>> la sequencia debe ser creada como GLOBAL.
<<<<<con HR>>>>>
alter table employees drop (modificado_por ,last_update );
alter table hr.employees add (modificado_por varchar(20), last_update date);
declare
TYPE EmpTabTyp IS TABLE OF HR.employees%ROWTYPE INDEX BY BINARY_INTEGER;
emp_tab EmpTabTyp;
v_last_name HR.employees.last_name%TYPE:= '&nombre';
v_email HR.employees.email%type := '&email';
begin
emp_tab(1).employee_id :=customers_seq.currval;
begin
select *
into emp_tab(1)
from HR.employees
where employee_id = emp_tab(1).employee_id;
DBMS_OUTPUT.put_line('ID empleado : ' ||emp_tab(1).employee_id);
DBMS_OUTPUT.put_line('Nombre : ' ||emp_tab(1).LAST_NAME);
DBMS_OUTPUT.put_line('Nuevo nombre: ' ||v_last_name);
DBMS_OUTPUT.put_line('Email : ' ||emp_tab(1).email);
DBMS_OUTPUT.put_line('Nuevo Email : ' ||v_email);
end;
update HR.employees
set last_name=v_last_name
,email= v_email
,modificado_por= user
,last_update =sysdate
where employee_id= emp_tab(1).employee_id;
end;
---------------------------------------------- DELETE
declare
v_employee_id employees.employee_id%type;
begin
v_employee_id :=customers_seq.currval;
delete from employees
where employee_id = v_employee_id;
-------------------------------------------- MERGE
begin
merge into copia_empleados co
using empleados em
on (em.id = co.id)
when matched then
Update set
co.nombre = em.nombre
when not matched then
insert values (em.id, em.nombre);
end;
select * from copia_empleados
-------------------------------------------------CURSOR IMPLICITO.
drop table empleados
CREATE TABLE EMPLEADOS (ID NUMBER, NOMBRE VARCHAR2(20));
INSERT INTO EMPLEADOS VALUES(1,'ANDRES');
INSERT INTO EMPLEADOS VALUES(2,'PEDRO');
INSERT INTO EMPLEADOS VALUES(3,'MARIA');
declare
v_borrados number;
v_resultado char(10);
v_si_borro boolean;
begin
delete from empleados where id <3;
v_borrados := SQL%ROWCOUNT;
v_si_borro := SQL%FOUND;
v_resultado := CASE
WHEN v_si_borro THEN 'TRUE'
WHEN NOT v_si_borro THEN 'FALSE'
ELSE
'UNKNOWN'
END;
dbms_output.put_line ('Encontro Registros? :'|| v_resultado);
dbms_output.put_line('Renglones borrados:'||v_borrados);
END;
15986912