Clase 2 - Plsql

24

description

clase de plsql

Transcript of Clase 2 - Plsql

Sobre Examen de Ttulo 461

Que debo Saber Bien Hasta Ahora!!- Funciones de manipulacin de caracteres (LOWER, UPPER, CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD, TRIM, REPLACE).

- Funciones de manipulacin de nmeros(ROUND, TRUNC, MOD)

- Funciones de manipulacin de fechas (MONTHS_BEETWEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND, TRUNC)

- Funciones de conversin de tipo de dato (TO_NUMBER, TO_DATE, TO_CHAR)

Funciones generales (NVL, NVL2, NULLIF, COALESCE)

Expresiones condicionales(CASE, DECODE)

Clusulas y funciones de grupo (GROUP BY, HAVING, AVG, COUNT, MAX, MIN, STDEV, SUM, VARIANCE).Que debo Saber Bien Hasta Ahora!!Joins (EQUIJOIN, NON-EQUIJOIN, OUTER JOINS, SELFJOINS).Que debo Saber Bien Hasta Ahora!!

Joins (EQUIJOIN, NON-EQUIJOIN, OUTER JOINS, SELFJOINS).

Subconsultas y operadores (tipos de subconsultas, y operadores IN, NOT IN)Que debo Saber Bien Hasta Ahora!!

Clusulas de control de transacciones (COMMIT, ROLLBACK, SAVEPOINT).

Creacin de Vistas SQL simples y complejasQue debo Saber Bien Hasta Ahora!!Conceptos bsicos de PL/SQL.

Estructura y secciones de un bloque PL/SQL

Tipos de bloque PL/SQL (annimo, nombrado)Que debo Saber Bien Hasta Ahora!!Ahora Agregaremos a Nuestra BDD.Variables en un Procedimiento

IN indica que el parmetro es de entrada y no se podr modificar.

OUT indica que el parmetro es de salida con lo que el procedimiento devolver un valor en l.

IN OUT indica que el parmetro es de entrada/salida. Con lo que al llamar al procedimiento se le dar un valor que luego podr ser modificado por el procedimiento y devolver este nuevo valor.Ahora Agregaremos a Nuestra BDD.set serveroutput on;

create or replace procedure hr.sp_consulta_empleados(var1_ in integer, salario_ out integer, nombre_ out varchar2)is

begin

salario_:= 0;nombre_ :='';

select first_name,salaryinto nombre_, salario_from hr.employees a inner join hr.departments b on a.department_id=b.department_idwhere a.employee_id=var1_;

dbms_output.put_line(nombre_ || ' '||salario_);

end;

--ejecucion de procedimiento en oracle declarevar1_ integer;salario_ integer;nombre_ varchar2(50);begin hr.sp_consulta_empleados(&var1_,salario_,nombre_);endAhora Agregaremos a Nuestra BDD. set serveroutput on para que se vea en pantalla la ejecucin --procedimientos con salida de dato create or replace procedure prueba_nu(aeditorial in number,valor out hr.employees.first_name%TYPE) is primer_ hr.employees.first_name%TYPE; begin select p.first_name into primer_ from HR.employees p where p.employee_id=aeditorial; valor:=primer_ ; end;

--ejecucion del dato declare valor hr.employees.first_name%TYPE; begin PRUEBA_NU(102,valor);-- a la diferencia en oracle no se coloca execute solo se llama el procedure con el nombre dbms_output.put_line('Resultado es : ' || valor); end;Variables de Enlace

Ahora Agregaremos a Nuestra BDD.

Ahora Agregaremos a Nuestra BDD.Variables Escalares

VARCHAR2 (longitud_mxima)NUMBER [(precisin, escala)]DATECHAR [(longitud_mxima)]LONGLONG RAWBOOLEANBINARY_INTEGERAhora Agregaremos a Nuestra BDD.Variables %TYPE

Permite declarar una variable basada en:Otras variables previamente declaradasLa definicin de una columna de la base de datosPreceder de %TYPE por:La tabla y la columna de la base de datosEl nombre de la variable definida con anterioridad

Ejemplo:

El siguiente ejemplo asigna a la v_ename el mismo tipo que el campo de la base de datos.

v_ename emp.ename%TYPE;Ahora Agregaremos a Nuestra BDD.Variables RECORD

El siguiente ejemplo crea un tipo PAIS, que tiene como campos el cdigo, el nombre y el continente.

Ahora Agregaremos a Nuestra BDD.Variables ROW TYPE

Ahora Agregaremos a Nuestra BDD.Las tablas de PL/SQL son tipos de datosque nos permiten almacenar varios valores del mismo tipo de datos.Una tabla PL/SQL :Es similar a un array , tiene dos componentes: Un ndice de tipo BINARY_INTEGER que permite acceder a los elementos en la tabla PL/SQL y una columna de escalares o registros que contiene losvalores de la tabla PL/SQL

Puede incrementar su tamao dinmicamente.La sintaxis general para declarar una tabla de PL es la siguiente:Ahora Agregaremos a Nuestra BDD.

Ahora Agregaremos a Nuestra BDD.Cuando trabajamos con tablas de PL podemos utilizar las siguientes funciones:FIRST :Devuelve el menor ndice de la tabla. NULL si est vaca.LAST :Devuelve el mayor ndice de la tabla. NULL si est vaca.

Ahora Agregaremos a Nuestra BDD.EXISTS(i). Utilizada para saber si en un cierto ndice hay almacenado un valor. Devolver TRUE si en el ndice i hay un valor.

Ahora Agregaremos a Nuestra BDD.COUNT. Devuelve el nmero de elementos de la tabla PL/SQL.

Ahora Agregaremos a Nuestra BDD.PRIOR(n). Devuelve el nmero del ndice anterior a n en la tabla.

Ahora Agregaremos a Nuestra BDD.NEXT(n). Devuelve el nmero del ndice posterior a n en la tabla.

TRIM. Borra un elemento del final de la tabla PL/SQL.TRIM(n) borra n elementos del final de la tabla PL/SQL.DELETE. Borra todos los elementos de la tabla PL/SQL.DELETE(n) borra el correspondiente al ndice n.DELETE(m,n) borra los elementos entre m y n.

Ahora Agregaremos a Nuestra BDD.