Pl Sql

Páginas: 26 (6395 palabras) Publicado: 22 de octubre de 2012
PL/SQL
Bases de Datos E.U.I.T.I.O

Características
Algunas características del lenguaje:
No es sensible a mayúsculas/minúsculas Comentarios hasta fin de línea: -Comentarios multilínea: /*… … … */ Literales de cadena se especifican entre comillas simples ’esto es una cadena’ Literales de caracter se especifican entre comillas simples ’c’ Fechas se especifican entre comillas simplessiguiendo el formato por defecto del sistema o indicando el formato ’17/11/2008’
Bases de Datos
2

Luis Vinuesa Belén Martínez

1

Bloque (Anónimo)
DECLARE Declaración de Variables; BEGIN Sentencias Ejecutables; [EXCEPTION Declaración de Excepciones;] END;

Bases de Datos

3

Luis Vinuesa Belén Martínez

Subprogramas
Son bloques PL/SQL con un nombre
Pueden recibir parámetros y serdirectamente invocados Puede haber varios con el mismo nombre siempre y cuando tengan distinto tipo/número de parámetros

Tipos
Procedimientos (PROCEDURE) -> Llevan a cabo acciones Funciones (FUNCTION) -> Devuelven valores

Invocación
Desde otro subprograma Desde aplicaciones Desde SQL+ (EXECUTE)

Bases de Datos

4

Luis Vinuesa Belén Martínez

2

Subprogramas - Parámetros
Lossubprogramas pueden recibir y devolver parámetros:
Parámetros de entrada (IN), se recibe un valor. Es la opción por defecto Parámetros de salida (OUT), se devuelve un valor Parámetros de entrada y salida (IN OUT), se recibe un valor y se puede devolver un valor

Los parámetros pueden tener valor por defecto, de tal manera que en la invocación al subprograma no sea necesario pasar el parámetroLuis Vinuesa
Bases de Datos
5

Belén Martínez

Subprogramas - Parámetros
Ejemplos:
Subpro1(a NUMBER);--equivalente a subpro1(a IN NUMBER) Subpro2(a IN NUMBER:=1);--si no se le pasa toma 1 Subpro2(a IN NUMBER DEFAULT 1);--igual al anterior Subpro3(a OUT DATE);--devuelve una fecha Subpro4(a IN OUT NUMBER);--recibe y devuelve valor Subpro5(a IN NUMBER, b IN NUMBER :=4);/*se le puede invocarsubpro5(33); subpro5(33,6); */ Subpro6(a IN NUMBER, b OUT VARCHAR2);/*en los varchar2 no se indica el tamaño*/
Luis Vinuesa Belén Martínez

Bases de Datos

6

3

Procedimientos
Sintaxis
CREATE [OR REPLACE] PROCEDURE [esquema.]nombre
[(argumento1 [{IN|OUT|IN OUT}] tipo_dato [{:=|DEFAULT} valor], ........ argumenton [{IN|OUT|IN OUT}] tipo_dato [{:=|DEFAULT} valor])] {IS|AS} cuerpo deprocedimiento

Bases de Datos

7

Luis Vinuesa Belén Martínez

Procedimientos
Estructura
CREATE OR REPLACE PROCEDURE nombre IS /*sección declarativa*/ BEGIN /*sección ejecutable*/ EXCEPTION /*sección de excepciones*/ END [nombre];

Bases de Datos

8

Luis Vinuesa Belén Martínez

4

Procedimientos
Ejemplo
CREATE OR REPLACE PROCEDURE ejemplo (p_departamento NUMBER, p_emptemp.empno%TYPE, p_accion NUMBER(1) DEFAULT 1) IS v_aux NUMBER; v_nuevo_dep tdept.deptno%TYPE; BEGIN ....... EXCEPTION WHEN ..... END ejemplo;

Bases de Datos

9

Luis Vinuesa Belén Martínez

Funciones
Sintaxis
CREATE [OR REPLACE] FUNCTION [esquema.]nombre
[(argumento1 [{IN|OUT|IN OUT}] tipo_dato [{:=|DEFAULT} valor], ........ argumenton [{IN|OUT|IN OUT}] tipo_dato [{:=|DEFAULT} valor])]RETURN tipo_dato_retorno {IS|AS} cuerpo de función

Bases de Datos

10

Luis Vinuesa Belén Martínez

5

Funciones
En el cuerpo de la función es necesario que se use la orden RETURN para devolver el valor de retorno de la función (También se puede usar en procedures sin ningún parámetro y sirve para provocar la salida inmediata del mismo)

Bases de Datos

11

Luis Vinuesa BelénMartínez

Funciones
Ejemplo
CREATE OR REPLACE FUNCTION calcula (p_dni tpersona%TYPE, p_sal OUT NUMBER) RETURN NUMBER IS v_porcen NUMBER(3,2); BEGIN ....... IF v_porcen>0.25 THEN RETURN 1; ELSE RETURN 2; END IF; END calcula;

Bases de Datos

12

Luis Vinuesa Belén Martínez

6

Subprogramas
Manejo de excepciones
RAISE (para excepciones predefinidas o definidas por el usuario)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Pl/Sql
  • PL sql
  • Pl/Sql
  • pl/sql
  • Cursores en PL/SQL
  • Ejercicios Pl Sql
  • Oracle pl/sql
  • tutorilal pl/sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS