Funcion

Fecha: el 30 de Enero
Categoria: General
Descargas: 3
Descripción:
Resumen (Extraido del documento):
CREATE OR REPLACE FUNCTION FN_CODIGO_GENERA(P_NOMBRE IN VARCHAR2)
RETURN VARCHAR2
IS
V_RES VARCHAR2(100) :='';
V_PALABRA VARCHAR2(100);
V_POS INT;
V_LAST_POS INT:=0;
V_INDEX INT:=0;

-- COLECCION DE VALORES, UNO PARA CADA PALABRA QUE ENCONTREMOS
TYPE COL_ARRAY IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
COL_PALABRAS COL_ARRAY;

BEGIN
-- VAMOS A CREAR UN REGISTRO PARA CADA PALABRA EN NUESTRA COLECCION, BUSCANDO LOS ESPACIOS CORRESPONDIENTES
V_POS := INSTR(P_NOMBRE, ' ');

-- SI NO ENCONTRAMOS NINGUN ESPACIO, SIGNIFICA QUE SOLAMENTE HAY UNA PALABRA
IF V_POS = 0 THEN
V_RES := SUBSTR(P_NOMBRE,1,3);
RETURN V_RES;
END IF;

-- SI HAY ALGUN ESPACIO VAMOS A DESCOMPONER CADA PALABRA EN NUESTRA COLECCION
WHILE V_POS != 0 LOOP
V_INDEX := V_INDEX + 1;
V_POS := INSTR(P_NOMBRE, ' ', V_LAST_POS+1);

-- VERIFICAR QUE NO SEA LA ULTIMA PALABRA
IF V_POS != 0 THEN
V_PALABRA := SUBSTR(P_NOMBRE, V_LAST_POS+1, V_POS-V_LAST_POS-1);
ELSE
V_PALABRA := SUBSTR(P_NOMBRE, V_LAST_POS+1, LENGTH(P_NOMBRE)-V_LAST_POS);
END IF;
COL_PALABRAS(V_INDEX) := V_PALABRA;
V_LAST_POS := V_POS;
END LOOP;

-- AHORA QUE TENEMOS CADA PALABRA SEPARADA EN LA COLECCION, PODEMOS HACER REFERENCIA A ELLAS SEGUN LAS REGLAS QUE REQUIERAS
-- EN ESTE CASO ESPECIFICO, ESTAMOS CONCATENANDO LAS DOS PRIMERAS LETRAS DE LA PRIMERA PALABRA
-- Y LAS DOS PRIMERAS LETRAS DE LA TERCERA PALABRA, EN EL ENTENDIDO QUE LA SEGUNDA PALABRA SIEMPRE ES LA LETRA "Y"
V_RES := SUBSTR(COL_PALABRAS(1),1,2) || SUBSTR(COL_PALABRAS(3),1,2);

-- DEVOLVER EL RESULTADO DE LA FUNCION
RETURN V_RES;
END FN_CODIGO_GENERA;
compartir

Sé el primero en opinar


 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: hipoteroidismo examen delf como sacar un porcentaje b.o.d. ejercicios de ballet

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos