Académique Documents
Professionnel Documents
Culture Documents
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
Unauthorized reproduction or distribution prohibited Copyright 2016, Oracle and/or its affiliates
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
Las funciones hacen ms potente el bloque de consultas bsico y se utilizan para manipular los
valores de datos. Las primeras dos lecciones de este curso analizan las funciones. Se centra en
funciones de fecha, de carcter de una fila y de nmero.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Entrada Salida
Funcin
arg n
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones SQL
Las funciones son una caracterstica muy potente de SQL. Se puede utilizar para realizar las
siguientes acciones:
Realizar clculos en los datos
Modificar elementos de datos individuales
Manipular la salida para grupos de filas
Formatear fechas y nmeros para su visualizacin
Convertir tipos de dato de columna
Algunas veces, las funciones SQL toman argumentos y siempre devuelven un valor.
Nota: si desea saber si una funcin es compatible con SQL:2003, consulte la seccin sobre
compatibilidad con SQL:2003 de la gua Oracle Database SQL Language Reference (Referencia
sobre Lenguaje SQL de Oracle Database) para la base de datos 10g u 11g.
Funciones
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Carcter
Conversin Date
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Carcter
funciones
LOWER CONCAT
UPPER SUBSTR
INITCAP LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Carcter
Las funciones de carcter de una sola fila aceptan los datos de caracteres como entrada y pueden
devolver valores numricos y de carcter. Las funciones de carcter se pueden dividir en:
Funciones de conversin de caracteres
Funciones de manipulacin de caracteres
Funcin Objetivo
LOWER(column|expression) Convertir valores de carcter alfabtico a minsculas.
UPPER(column|expression) Convertir valores de carcter alfabtico a maysculas.
INITCAP(column|expression) Convertir valores de carcter alfabtico en maysculas; la
primera letra de cada palabra y el resto en minsculas.
CONCAT(column1|expression1, Concatenar el primer valor de carcter con el segundo valor
column2|expression2) de carcter; equivalente al operador de concatenacin (||).
SUBSTR(column|expression,m[ Devolver los caracteres especificados de un valor de carcter
,n]) que empieza por la posicin de carcter m, de una longitud
de n caracteres (si m es negativo, el recuento empieza desde
el final del valor de carcter. Si se omite n, se devolvern
todos los caracteres del final de la cadena).
Nota: las funciones tratadas en esta leccin son slo algunas de las funciones disponibles.
denominada.
Opcionalmente, puede proporcionar una posicin m
para iniciar la bsqueda y el n de incidencias de la
cadena. m y n tienen un valor por defecto de 1, lo cual
significa que se inicia la bsqueda al principio y se
informa de la primera incidencia.
LPAD(column|expression, n, Devolver una expresin con relleno a la izquierda de n
'string') caracteres con una expresin de caracteres.
RPAD(column|expression, n,
Devolver una expresin con relleno a la derecha de n
'string')
caracteres con una expresin de caracteres.
TRIM(leading|trailing|both, Permite recortar los caracteres finales o de encabezado
trim_character FROM (o ambos) de una cadena de caracteres. Si
trim_source)
trim_character o trim_source es un literal de carcter,
debe incluirlo entre comillas simples.
sta es una funcin disponible en Oracle8i y versiones
posteriores.
REPLACE(text, Busca una expresin de texto para una cadena de
search_string, caracteres y, si la encuentra, sustituirla por una cadena
replacement_string)
de sustitucin especificada.
Nota: algunas de las funciones total o parcialmente compatibles con SQL:2003 son:
UPPER
LOWER
TRIM
LENGTH
SUBSTR
INSTR
Para obtener ms informacin, consulte la seccin sobre compatibilidad de Oracle con Core
SQL:2003 en Oracle Database SQL Language Reference (Referencia sobre Lenguaje SQL de
Oracle Database) para la base de datos 10g u 11g .
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Oracle Database: Conceptos Fundamentales de SQL I 3-11
Uso de Funciones de Conversin de Caracteres
Unauthorized reproduction or distribution prohibited Copyright 2016, Oracle and/or its affiliates
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funcin Resultado
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
REPLACE BLACK and BLUE
('JACK and JUE','J','BL')
TRIM('H' FROM 'HelloWorld') elloWorld
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
1
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name), 2
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees 3
WHERE SUBSTR(job_id, 4) = 'REP';
1 2 3
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funcin Resultado
ROUND(45.926, 2) 45.93
TRUNC(45.926, 2) 45.92
MOD(1600, 300) 100
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones Numricas
Las funciones numricas aceptan entradas numricas y devuelven valores numricos. Esta seccin
describe algunas de las funciones numricas.
Funcin Objetivo
ROUND(column|expression, n) Redondear la columna, expresin o valor a n decimales
o, si se omite n, a ningn decimal (Si n es negativo,
se redondearn los nmeros a la izquierda del decimal.)
TRUNC(column|expression, n) Truncar la columna, expresin o valor a n decimales o,
si n se omite, el valor por defecto de n es cero
MOD(m,n) Devolver el resto de m dividido entre n
Nota: esta lista contiene slo algunas de las funciones numricas disponibles.
Para obtener ms informacin, consulte la seccin sobre funciones numricas en la gua Oracle
Database SQL Language Reference (Referencia sobre Lenguaje SQL de Oracle Database) para la
base de datos 10g u 11g.
1 2
SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1) 3
FROM DUAL;
1 2 3
DUAL es una tabla pblica que puede utilizar para ver los
resultados de funciones y clculos.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
1 2
SELECT TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-1) 3
FROM DUAL;
1 2 3
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
AoActual
Ao Actual Fecha Especificada Formato RR Formato YY
1995 27-OCT-95 1995 1995
1995 27-OCT-17 2017 1917
2001 27-OCT-17 2017 2017
2001 27-OCT-95 1995 2095
049 5099
Si dos de La fecha de La fecha de
los dgitos 049 devolucin est en devolucin est en el
del ao el siglo actual siglo anterior al actual
actual son: La fecha de devolucin La fecha de
5099 est en el siglo devolucin est en
posterior al actual el siglo actual
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Formato de Fecha RR
El formato de fecha RR es similar al elemento YY, pero puede utilizarlo para especificar siglos
diferentes. Utilice el elemento de formato de fecha RR en lugar de YY para que el siglo del valor de
retorno vare segn el ao de dos dgitos especificado y los ltimos dos dgitos del ao actual. La
tabla de la diapositiva resume el comportamiento del elemento RR.
Ao Actual Fecha Proporcionada Interpretada (RR) Interpretada (YY)
1994 27-OCT-95 1995 1995
1994 27-OCT-17 2017 1917
2001 27-OCT-17 2017 2017
2048 27-OCT-52 1952 2052
2051 27-OCT-47 2147 2047
Observe que los valores mostrados en las dos ltimas filas de la tabla anterior. Conforme nos
acercamos a la mitad del siglo, el comportamiento de RR puede que no sea lo que desea.
Cuando se inserta un registro con una columna de fecha en una tabla, la informacin de siglo se
selecciona de la funcin SYSDATE. Sin embargo, cuando la columna de fecha se muestra en la
pantalla, el componente de siglo no aparece (por defecto).
El tipo de dato DATE utiliza 2 bytes para la informacin de ao, uno para el siglo y otro para el ao.
El valor de siglo siempre se incluye, independientemente de si se especifica o se muestra. En este
caso, RR determina el valor por defecto para el siglo en INSERT.
Fecha
Hora
SELECT sysdate
FROM dual;
;
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funcin Resultado
MONTHS_BETWEEN Nmero de meses entre dos fechas
ADD_MONTHS Agregar meses de calendario a fecha
NEXT_DAY Siguiente da de la fecha especificada
LAST_DAY ltimo da del mes
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funcin Resultado
MONTHS_BETWEEN 19.6774194
('01-SEP-95','11-JAN-94')
ADD_MONTHS (31-JAN-96',1) '29-FEB-96'
NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95'
LAST_DAY ('01-FEB-95') '28-FEB-95'
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funcin Resultado
ROUND(SYSDATE,'MONTH') 01-AUG-03
ROUND(SYSDATE ,'YEAR') 01-JAN-04
TRUNC(SYSDATE ,'MONTH') 01-JUL-03
TRUNC(SYSDATE ,'YEAR') 01-JAN-03
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Respuesta: 1, 3, 6, 7
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Resumen
Las funciones de una sola fila se pueden anidar en cualquier nivel. Las funciones de una sola fila
pueden manipular los siguientes elementos:
Datos de caracteres: LOWER, UPPER, INITCAP, CONCAT, SUBSTR, INSTR, LENGTH
Datos de nmero: ROUND, TRUNC, MOD
Valores de fecha: SYSDATE, MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY
Recuerde lo siguiente:
Los valores de fecha tambin pueden utilizar operadores aritmticos.
Las funciones ROUND y TRUNC tambin se pueden utilizar con valores de fecha.
SYSDATE y DUAL
SYSDATE es una funcin de fecha que devuelve la fecha y hora actuales. Es muy comn seleccionar
SYSDATE de una tabla pblica denominada DUAL.
Copyright 2010, Oracle y/o sus filiales. Todos los derechos reservados.