Apuntes PLSQL

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

PL/SQL

Lenguaje procedural orientado a objetos

O se cumple todo o nada

Esquema o plantilla a seguir:

SET SERVEROUTPUT ON; -> Activar servicio que permite tener salida de información en SGDB

TRIM(CAMPO1) || ‘ ‘ || TRIM(CAMPO2) -> quita espacios en blanco, por si se tienen tipos Char

TO_CHAR(CAMPO) -> pasa a cadena un tipo de dato

NVL() -> si una función devuelve null el devolverá un cero

BLOQUES -> líneas de código sql

Bloques anónimos -> son simples lineas de código, no pueden ser invocados

Bloques nominados -> son bloques de código que pueden ser invocados

1. DECLARE -> zona de definición de variables (No es obligatorio)

nombrevariable tipo(rango):= valor;


vnombre VARCHAR2(35):= ‘oscar’;
vsalario NUMBER:= 3000;

nombrevariable TABLA.COLUMNA%TYPE:= valor;


varid ESTUDIANTES.ID%TYPE:= 47;

vsalida VARCHAR2(80);

variables de sustitución (&) -> valores que se le pide al usuario por teclado

varid ESTUDIANTES.ID%TYPE:= ’&ingresar_id’;


2. BEGIN -> zona de ejecución transaccional (obligatoria)

DELETE FROM TEMPORAL;

SELECT TRIM(NOMBRE) || ‘ ‘ || TRIM (APELLIDO) || TO_CHAR(CREDITOS)

INTO vsalida

FROM ESTUDIANTES

WHERE ID = vaird;

--mostrar

DBMS_OUTPUT.PUT_LINE(‘INFO: ‘ || vsalida);

INSERT INTO TEMPORAL(columnacaracter)

VALUES(vsalida);

DBMS_OUTPUT.PUT_LINE(‘Nombre: ‘ || vnombre || ‘ Salario: ‘ || vsalario);

DML-> lenguaje de actualización de datos (INSERT, UPDATE, DELETE)


Invocaciones a otros programas
Manejo de bucles y recorrido de cursores

3. EXCEPTION -> manejo y control de errores (obligatorio


WHEN NO_DATA_FOUND THEN
vsalida:= ‘NO EXISTE EL ESTUDIANTE: ‘ || varid;
DBMS_OUTPUT.PUT_LINE(‘INFO: ‘ || vsalida);
INSERT INTO TEMPORAL(columnacaracter)
VALUES(vsalida);

4. END; -> (fin de

/ todo el bloque)
BUCLES: recorridos sistemáticos con un inicio y fin, van dentro del begin

CURSORES: es un apuntador a un conjunto de filas (no almacenadas, lista de datos) que provienen
de una consulta o de una operación DML (INSERT, UPDATE, DELETE) dependen obligatoriamente
del manejo de bucles

Usarlo cuando las filas involucradas en el proceso de extracción invocadas involucran más de una
fila

TIPOS DE CURSORES:

1. IMPLICITOS -> operados por el propio sistema (DML)

ATRIBUTOS: Funciones que se invocan cuando se necesiten

SQL%FOUND: verdadero si encuentra datos

SQL%NOTFOUND: verdadero si no encuentra datos

SQL%ROWCOUNT: devuelve el numero de filas devueltas por la operación DML o


de consulta sobre el cursor

SQL%ISOPEN: verdadero si el cursor esta abierto

2. EXPLICITOS(Nominados) -> consultas del programador DB


Mismas funciones que usa los implícitos pero SQL se reemplaza por el nombre del
cursor

3. PARAMETRIZADOS -> valores que entran por teclado para que el cursor opere y despliegue
información

host

dir *.sql

sqlplus

edit nombreArchivo

@nombrearchivo
TIPOS DE BUCLES:

1. LOOP
<procesos de ejecución>;
EXIT WHEN <condición>;
END LOOP

2. WHILE <condición> LOOP


<procesos de ejecución>;
--modificación del centinela de condición
END LOOP;

3. FOR variable_autodeclarada IN (REVERSE-> si quiero inversa) Valor_1.. Valor_2 LOOP


<procesos de ejecución>;
END LOOP;
-- CONDICIONES

AND, OR, NOT

!=, <>

=,

<, <=

>, >=

IF <condición> THEN

<procesos>;

END IF;

IF <condición> THEN

<procesos>;

ELSIF <condición2> THEN

<procesos2>;

ELSIF <condición3> THEN

<procesos3>;

ELSE

<procesos4>;

END IF;

También podría gustarte