T.i.a.s.bd - Clase 06
T.i.a.s.bd - Clase 06
Declare
sFecha Varchar2(40);
Begin
select to_char(sysdate,'dd/mm/yyyy hh24:mm:ss')
into sFecha from dual;
dbms_output.put_line( Hoy es: || sFecha );
End;
/
NOTA: / para compilar
Begin
dbms_output.put_line( HOLA MUNDO );
End;
/
BEGIN
FACTORIAL2(6);
END;
/
EXECUTE FACTORIAL2(6);
DESCRIBE DEPARTMENTS;
EXEC PA2(100);
vDEP_NOM DEPARTMENTS.DEPARTMENT_NAME%type;
SELECT *
FROM DEPARTMENTS
WHERE DEPARTMENT_ID = 100;
SELECT *
FROM EMPLOYEES
WHERE EMPLOYEE_ID = 108;
LISTAR CODIGO DEPARTAMENTOS, NOMBRE DEPARTAMENTOS CON MANAGER ID, NOMBRE COMPLETO
DE MANAGER
vDEP_COD DEPARTMENTS.DEPARTMENT_ID%type;
vDEP_NOM DEPARTMENTS.DEPARTMENT_NAME%type;
vDEP_MAN DEPARTMENTS.MANAGER_ID%type;
vEMP_NAM EMPLOYEES.FIRST_NAME%type;
vEMP_LAST EMPLOYEES.LAST_NAME%type;
BEGIN
SELECT COUNT(*)
FROM DEPARTMENTS
WHERE MANAGER_ID IS NULL;
BEGIN
BEGIN
BEGIN
SELECT SALARY INTO V_SAL FROM EMPLOYEES WHERE EMPLOYEE_ID=VEMP_ID
V_NUESAL:= V_SAL+ N1 ;
RETURN V_NUESAL;
END;
/
DECLARE
V_NUESAL EMPLOYEES.SALARY%type:=(20,20)
BEGIN
DBMS_OUTPUT.PUT_LINE(V_NUESAL);
END;
EXEC FR114(20,20);
=========================================================================
CREATE OR REPLACE FUNCTION FR114(VEMP_ID EMPLOYEES.EMPLOYEE_ID%type, N1 NUMBER)
RETURN EMPLOYEES.SALARY%type
IS
V_SAL EMPLOYEES.SALARY%type;
V_NUESAL EMPLOYEES.SALARY%type;
BEGIN
SELECT SALARY INTO V_SAL FROM EMPLOYEES WHERE EMPLOYEE_ID=VEMP_ID;
V_NUESAL:= V_SAL+ N1 ;
RETURN V_NUESAL;
END;
DECLARE
V_NUEVO NUMBER :=FR114 (100,20);
BEGIN
DBMS_OUTPUT.PUT_LINE(V_NUEVO);
END;
==========================================================================
CREATE OR REPLACE PROCEDURE PR114(DEPARTMENT_ID)
IS
CURSOR C_EMP IS SELECT FIRST_NAME, LAST_NAME , EMPLOYEE_ID, DEEPARTMENT_ID, SALARY;
VFIRST_NAME EMPLOYEES.FIRST_NAME%type;
VLAST_NAME EMPLOYEES.LAST_NAME%type;
VEMPLOYEE_ID EMPLOYEES-EMPLOYEE_ID%type;
VDEPARTMENT_ID EMPLOYEES.ID%type;
VSALARIO EMPLOYEES.SALARY%type;
V_NUEVO NUMBER;
BEGIN
BEGIN
OPEN C_EMP;
FETCH C_EMP INTO VEMPLOYEE_ID,VDEPARTEMENT_ID;
WHILE C_EMP%FOUND LOOP
V_NUEVO :=FR114 (EMPLOYEE_ID,20);
DBMS_OUTPUT.PUT_LINE ( VNUEVO);
END LOOP;
CLOSE C_EMP;
END;
model datos , procesos , normalizacion , cartera de proyectos de un plan de
ti,aspectos de revision del plan mision vision , objetivos, metas ; iso 9001 ,
biometria
BEGIN
OPEN C_EMP;
FETCH C_EMP INTO VEMPLOYEE_ID, VDEPARTMENT_ID;
FOR R IN C_EMP LOOP
V_NUEVO := FR114 (VEMPLOYEE_ID,20);
DBMS_OUTPUT.PUT_LINE (VEMPLOYEE_ID || ' - ' || VDEPARTMENT_ID||' - ' || V_NUEVO);
END LOOP;
CLOSE C_EMP;
END;
BEGIN
PR114(90,20);
END;
BEGIN
BEGIN
BEGIN
FACTORIAL2(6);
END;
/
BEGIN
SELECT TB_PAGOCLIENTE_FEC,TB_PAGOCLIENTE_IMP INTO V_CANT_VENTA FROM TB_PAGOCLIENTE
WHERE _ID=VEMP_ID;
V_NUESAL:= V_SAL+ N1 ;
RETURN V_NUESAL;
END;
DECLARE
V_NUEVO NUMBER :=FR114 (100,20);
BEGIN
DBMS_OUTPUT.PUT_LINE(V_NUEVO);
END;
VENTAS=========
CREATE OR REPLACE PROCEDURE PRVENTAS(NUMERO NUMBER)
IS
CURSOR C_VENTA IS SELECT TB_PAGOCLIENTE_FEC,TB_PAGOCLIENTE_IMP FROM TB_PAGOCLIENTE
WHERE TB_PAGOCLIENTE_ID<=NUMERO;
VPAGCLIENTE_FEC TB_PAGOCLIENTE_FEC%type;
VPAGCLIENTE_IMP TB_PAGOCLIENTE_IMP%type;
VCANT_VENTA=NUMBER;
BEGIN
V_STOCK NUMBER;
BEGIN
SELECT TB_PRODUCTO_STOACT INTO V_STOCK FROM TB_PRODUCTO WHERE
TB_PRODUCTO_ID=VPRODUCTO_ID;
RETURN V_STOCK;
END;
DECLARE
V_STOC NUMBER :=FR114 (1);
BEGIN
DBMS_OUTPUT.PUT_LINE(V_STOC);
END;
====================================================
CREATE OR REPLACE PROCEDURE PRVENTAS(NUMERO NUMBER)
IS
CURSOR C_VENTA IS SELECT TB_PAGOCLIENTE_IMP FROM TB_PAGOCLIENTE WHERE
TB_PAGOCLIENTE_ID<=NUMERO;
VPAGCLIENTE_IMP TB_PAGOCLIENTE.TB_PAGOCLIENTE_IMP%type;
VCANT_VENTA NUMBER;
BEGIN
BEGIN
SELECT TB_PAGOCLIENTE_FEC,TB_PAGOCLIENTE_IMP INTO V_CANT_VENTA FROM TB_PAGOCLIENTE
WHERE _ID=VEMP_ID;
V_NUESAL:= V_SAL+ N1 ;
RETURN V_NUESAL;
END;
DECLARE
V_NUEVO NUMBER :=FR114 (100,20);
BEGIN
DBMS_OUTPUT.PUT_LINE(V_NUEVO);
END;
======================================================
create or replace PROCEDURE UPDATESALEMP(CODIGO EMPLOYEES.EMPLOYEE_ID%type,SALARIO
EMPLOYEES.SALARY%TYPE)
IS
CONT NUMBER;
SELECT COUNT(*) INTO CONT FROM EMPLOYEES WHERE EMPLOYEE_ID=CODIGO;
IF(CONT=0) THEN
RAISSE_APPLICATION_ERROR(-20000,'NO EXISTE EMPLEADO.');
END IF
UPDATE EMPLOYEE
SET SALARY=SALARIO;
WHERE EMPLOYEE_ID=CODIGO;
COMMIT;
BEGIN
UPDATESALEMP(2,200);
END;
===============================================================
create or replace PROCEDURE UPDATESALEMP(CODIGO EMPLOYEES.EMPLOYEE_ID%type,SALARIO
EMPLOYEES.SALARY%type)
IS
CONT NUMBER;
BEGIN
IF(CONT=0) THEN
RAISE_APPLICATION_ERROR(-20000,'NO EXISTE EMPLEADO.');
END IF ;
UPDATE EMPLOYEES
SET SALARY=SALARIO
WHERE EMPLOYEE_ID=CODIGO;
COMMIT;
BEGIN
UPDATESALEMP(2,200);
END;
===============================================================
procedimiento para mostrar un mensaje si es que se quiere cambias los horarios
de oficina
===============================================================
agregando al tiggers seguridad_empleados(se llama a procedimientos
seguridad_dml)
=============================================================
ejercicio
==================================================
NOM_DEP DEPARTMETNS.DEPARTMENT_NAME%type;
NOM_PUESTOS JOBS.JOB_TITLE%TYPE;
BEGIN
SELECT DEPARTMENT_NAME , JOB_TITLE INTO NOM_DEP,NOM_PUESTOS
FROM DEPARTMENTS,JOB_HISTORY,JOBS,EMPLOYEES
WHERE DEPARTMENTS.DEPARTMENT_ID=JOB_HISTORY.DEPARTMENT_ID AND
JOB_HISTORY.JOB_ID=JOBS.JOB_ID AND
FIRST_NAME= 'APELLIDO' AND
LAST_NAME= 'NOMBRE';
dbms_output.put_line(NOM_DEP || NOM_PUESTOS);
END;
/
EXEC PA1V2(100);
===================================================================================
===========
BEGIN
SELECT MANAGER_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN ( SELECT DEPARTMENT_ID FROM EMPLOYEES WHERE
EMPLOYEES.FIRST_NAME= Steven AND
EMPLOYEES.LAST_NAME= King);
NOM_DEP DEPARTMENTS.DEPARTMENT_NAME%type;
NOM_PUESTOS JOBS.JOB_TITLE%TYPE;
BEGIN
SELECT DEPARTMENT_NAME , JOB_TITLE INTO NOM_DEP,NOM_PUESTOS
FROM DEPARTMENTS,JOB_HISTORY,JOBS,EMPLOYEES
WHERE DEPARTMENTS.DEPARTMENT_ID=JOB_HISTORY.DEPARTMENT_ID AND
JOB_HISTORY.JOB_ID=JOBS.JOB_ID AND
EMPLOYEES.FIRST_NAME= APELLIDO EMPLOYEES.FIRST_NAME%type AND
EMPLOYEES.LAST_NAME= NOMBRE EMPLOYEES.LAST_NAME%type;
dbms_output.put_line(NOM_DEP || NOM_PUESTOS);
END;
BEGIN
PR115(Ellen,Abel);
END;
servidor oracle
================
insatancia y base de datos
-COMPONENTE FISICOS DE LA BD
ESQUEMAS
BEGIN
INS_PRODUCTO(4,1003,ALAMBRE,FIERRO,20,3);
END;
BEGIN
ACT_PRODUCTO(4,1003,'ALAMBRE','FIERRO',20,3);
END;
BEGIN
ELIMINAR_PRODUCTO(4);
END;
BEGIN
CALCULAR_PEDIDOS_ENTREGADOS;
END;
BEGIN
CALCULAR_PEDIDOS_NO_ENTREGADOS;
END;
BEGIN
BEGIN
PLANILLAS_TRABAJADORES;
END;