Procedimientos y funciones en Oracle

En este artículo vamos a aprender cual es la estructura básica de los procedimientos o funciones PL/SQL Oracle que podemos utilizar para realizar diferentes tareas. Además, también veremos cómo debemos crear un bloque principal para llamar a estos procedimientos y funciones para comprobar su correcto funcionamiento.

Procedimientos

CREATE OR REPLACE PROCEDURE nombreProcedimiento (nombreVariable TIPO, ...)
AS
BEGIN
   ...
END nombreProcedimiento;

Ejemplo

CREATE OR REPLACE PROCEDURE calcularIva (precio NUMBER, iva NUMBER)
AS
BEGIN
   DBMS_OUTPUT.PUT_LINE(precio+(precio*iva/100))
END nombreProcedimiento;

Funciones

CREATE OR REPLACE FUNCTION nombreFuncion (nombreVariable TIPO, ...)
RETURN TIPO
IS
BEGIN
   ...
   RETURN(variable);
END nombreFuncion;

Ejemplo

CREATE OR REPLACE FUNCTION calcularIva (precio NUMBER, iva NUMBER)
RETURN NUMBER
IS
   precioFinal NUMBER;
BEGIN
   precioFinal := precio+(precio*iva/100);
   RETURN(precioFinal);
END nombreFuncion;

ilumina2 photo

Bloque principal

Creación de un bloque principal desde el que llamar a procedimientos o funciones:

SET VERIFY OFF
SET ECHO OFF
SET SERVEROUTPUT ON
DECLARE
   ...
BEGIN
   ...
END;

(Ejemplo más abajo)

Utilidades

Obtener datos por teclado

ACCEPT nombre_variable PROMPT 'Texto a mostrar por pantalla'

nombre_variable no se considera una variable PL/SQL con lo cual, debemos acceder a ella de una forma especial, precediendo su nombre de “&”. Por ejemplo ‘&nombre_variable’.

Un bloque principal que pide dos números y llama a un procedimiento o función quedaría de la siguiente manera.

SET VERIFY OFF
SET ECHO OFF
SET SERVEROUTPUT ON
   ACCEPT nombre PROMPT 'Introduce el nombre del producto'
   ACCEPT precio PROMPT 'Introduce el precio del artículo'
   ACCEPT iva PROMPT 'Introduce el iva'
DECLARE
   resultado NUMBER;
BEGIN
   resultado := calcularIva('&precio', '&iva');
   DBMS_OUTPUT.PUT_LINE('El precio de &nombre con iva es:' || resultado);
END;

Debemos fijarnos como, al acceder a una variable no PL/SQL como nombre, precio o iva lo hacemos siempre entre comillas simples y con el símbolo ‘&’ delante. En cambio, acceder a una variable declarada como resultado (variable PL/SQL), se debe hacer de forma habitual, sin comillas y sin ‘&’ delante.

Estructuras de control

IF

IF (expresion) THEN
   ...        
ELSIF (expresion) THEN
   ...       
ELSE
   ...        
END IF;

WHILE

WHILE (expresion) LOOP
   ...
END LOOP;

FOR

FOR contador IN [REVERSE] inicio..fin LOOP
   ...
END LOOP;

CASE

CASE var
WHEN 'valor' THEN
   ...
WHEN 'valor2' THEN
   ...
ELSE
   ...
END CASE;

Este artículo será ampliado en el futuro.

Si lo deseas, puedes acceder a los siguientes manuales sobre comandos Oracle SQL.

Anuncios

2 Responses to Procedimientos y funciones en Oracle

  1. Pingback: Comandos Oracle – Tercera Parte – « Aitor Rigada

  2. Pingback: Comandos Oracle – Segunda Parte – « Aitor Rigada

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: