martes, 27 de julio de 2010

FUNCIONES DE ORACLE 9

FUNCIONES DE ORACLE

1. INTRODUCCION:
Una función consta de una sintaxis especifica con un nombre, uno o más argumentos que van entre paréntesis.
Existen en ORACLE muchas funciones que pueden complementar el manejo de los datos en las consultas.
Se utilizan dentro de las expresiones y actúan con los valores de las columnas, variables o constantes.
Pueden anidarse funciones dentro de funciones. Y existe una gran variedad de funciones para cada tipo de datos:

2. OBJETIVOS:
2.1. Identificar los diferentes tipos de funciones a través de la ilustración de su estructura, sintaxis y uso.
2.2. Manejar las funciones dentro de las consultas SQL.

3. INFORMES DE INVESTIGACION:
3.1. FUNCIONES NUMERICAS
ABS( ): Devuelve el valor absoluto de un nº . Formato: ABS()
CEIL( ): Devuelve un entero >= nº . Formato: CEIL()
FLOOR( ): Devuelve un entero <= nº . Formato: FLOOR()
MOD( ): Devuelve el resto de la división nº1 / nº2. Formato: MOD(,)
POWER( ): Devuelve nº1nº2. Formato: POWER(,)
ROUND( ): Devuelve el nº n redondeado con m decimales. Formato: ROUND(, [])
SIGN( ): Devuelve el signo de n (nº <> 0 derecha 1). Formato: SIGN()
TRUNC( ): Devuelve el nº n con m decimales (por defecto, m=0). Si m es negativo trunca m dígitos a la izquierda del punto decimal. Formato: TRUNC(,)
Ejemplos:
SELECT TRUNC(4567, -3), TRUNC(4567.89, 1) FROM DUAL; derecha devuelve 4000 y 4567.8
SELECT TRUNC(4567.555), TRUNC(1, -2) FROM DUAL; derecha devuelve 4567 y 0
SQRT( ): Devuelve la raíz cuadrada de un nº . Formato: SQRT()

3.2. FUNCIONES DE GRUPOS DE VALORES
AVG( ): Devuelve la media. Formato: AVG()
COUNT( ): Devuelve el nº de valores no nulos en los registros recuperados. Formato: COUNT({ *})
DISTINCT( ): Contar los distintos. [no existe en el SQL de ACCESS ]. Formato: DISTINCT({ *})
MAX( ): Devuelve el valor máximo. Formato: MAX()
MIN( ): Devuelve el valor mínimo. Formato: MIN()
SUM( ): Devuelve la suma de todos los registros del grupo. Formato: SUM()

3.3. FUNCIONES DE CONVERSION DE TIPOS DE DATOS
TO_CHAR( ): Convierte un nº o una fecha en una cadena. Formato: TO_CHAR().

YYYY Año (4 cifras) HH24 Hora (reloj 24 horas)
YY Año (2 cifras) HH Hora (reloj 12 horas)
MM Mes (1-12) MI Minuto
D Dia semana (nº) [1 = lunes] SS Segundo
DD Dia (1-31)
DDD Nº dia del año (1-366)
Q Nº trimestre (1-4)

Ejemplo: TO_CHAR(1000)
TO_DATE( ): Convierte una cadena en una fecha. Formato: TO_DATE(). Ejemplo: TO_DATE('01-DEC-97')
TO_NUMBER( ): Convierte una cadena en un nº. Formato: TO_NUMBER(). Ejemplo: TO_NUMBER('1000')

3.4. FUNCIONES DE CADENA
INITCAP( ): El primer carácter en mayúsculas. Formato: INITCAP()
INSTR( ): Comprueba si una cadena está dentro de otra. Se busca la ocurrencia nº n empezando desde .
Formato: INSTR("","",,)
LENGTH( ): Longitud de una cadena. Formato: LENGTH()
LOWER( ): Pasa la cadena a minúsculas. Formato: LOWER()
LPAD( ): Rellena una columna por la izquierda con el carácter indicado.
(a) Si nº > longitud del campo: los espacios que sobran se rellenan por la izquierda con el carácter indicado.
(b) Si nº = longitud del campo: sin cambios
(c) Si nº <>, ,)
Ejemplos:
SELECT LPAD('S1', 10 '_') FROM DUAL [Esta select devuelve la cadena '________S1' ]
SELECT LPAD('1234567890', 2, '_') FROM DUAL [Esta select devuelve la cadena '12' ]
SELECT LPAD(1000, 7, '*') FROM DUAL [Esta select devuelve la cadena '***1000' ]
Ejemplo:select lpad(cod_usuario, 2, '_') from list_movimientos;
LTRIM( ): Elimina los espacios de la izquierda . Formato: LTRIM()
REPLACE( ): Hace 'buscar y cambiarla por ' dentro de .
Formato: REPLACE("","","")
Ejemplo: SELECT REPLACE('SCOTT','S','BOY') FROM DUAL
RPAD( ): Aumenta el tamaño de una columna. Los espacios que sobran se rellenan por la derecha.
(a) Si nº > longitud del campo: los espacios que sobran se rellenan por la derecha con el carácter indicado.
(b) Si nº = longitud del campo: sin cambios
(c) Si nº <>, ,)
Ejemplos:
SELECT RPAD('S1', 10 '_') FROM DUAL [Esta select devuelve la cadena ' S1________' ]
SELECT RPAD('S1', 10 '_-') FROM DUAL [Esta select devuelve la cadena ' S1_-_-_-_-' ]
SELECT RPAD('S1', 12, '_- ') FROM DUAL [Esta select devuelve la cadena ' S1_- _- _- _' ]
SELECT RPAD('1234567890', 2, '_') FROM DUAL [Esta select devuelve la cadena '12' ]
RTRIM( ): Elimina los espacios de la derecha . Formato: RTRIM()
SOUNDEX( ): Busca palabras que suenen igual (en inglés). Formato: SOUNDEX("")
Ejemplo:
SELECT apellidos FROM empleados
WHERE SOUNDEX(apellidos) = SOUNDEX("SMYTHE")
SUBSTR( ): Devuelve un pedazo de una cadena. Formato: SUBSTR(,,)
TRIM( ): Elimina los espacios de la izquierda y derecha (es como hacer un LTRIM(RTRIM(…)) ). Formato: TRIM()
Ejemplo:
SELECT '==>' TRIM(SUBSTR(DESCRIPCION, 1, 40)) '<==' "Sin espacios" FROM almacenes WHERE CODIGO LIKE 'A_B_' Sin espacios -------------------------------------------------- ==>Almacén de la calle Bravo Murillo<== ==>Almacén de la calle Sainz de Baranda<== UPPER( ): Pasa la cadena a mayúsculas. Formato: UPPER()

3.5. FUNCIONES PARA VALORES DE FECHAS
ADD_MONTHS( ): Suma n meses a una fecha. Formato: ADD_MONTHS(,)
DAY( ): Día del mes. Formato: DAY()
LAST_DAY( ): Nº de días del mes. Formato: LAST_DAY().
Ejemplo: SELECT LAST_DAY(SYSDATE) FROM DUAL
MONTH( ): Mes de la fecha. Formato: MONTH()
MONTHS_BETWEEN( ): Devuelve nº de meses que hay entre dos fechas. (fecha2 - fecha1)
Formato: MONTHS_BETWEEN(,)
SYSDATE: Fecha del sistema. Formato: SYSDATE. Ejemplo: SELECT SYSDATE FROM DUAL
WEEKDAY( ): Día de la semana (0derechadomingo, 6derechasábado)
YEAR( ): Año de la fecha. Formato: YEAR()

4. CONCLUSIONES
4.1. Una función es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre con que se le haya creado. Se diferencian de los procedimientos, en que las funciones retornan un valor al ambiente desde donde fueron llamadas.
4.2. Las Funciones devuelven, convierten, rellenan, eliminan, modifican valores según el tipo de función que se aplique.


5. RECOMENDACIONES
5.1. Se recomienda tener siempre bien definida la sintaxis para crear una función.
5.2. Ayudarse de ejemplos para aplicar bien la sintaxis en una función

Autor: Christian Yépez

No hay comentarios:

Publicar un comentario