Академический Документы
Профессиональный Документы
Культура Документы
Procedimientos en Oracle10g
10-1
Objetivos
10-2
Describir
en SQL.
varios
tipos
de
funciones
disponibles
10-3
10-4
10-5
10-6
Facultad
Ingeniera
Facultadde
de10-7
IngenieraIndustrial
Industrialyyde
deSistemas
Sistemas
Prof.
Miguel
Angel
Prof.Ing.
Ing.Ponte
PonteRoca
Roca
Miguel
Angel los derechos reservados.
Copyright Oracle Corporation,
2001.
Todos
33
Facultad
Ingeniera
Facultadde
de10-8
IngenieraIndustrial
Industrialyyde
deSistemas
Sistemas
Prof.
Miguel
Angel
Prof.Ing.
Ing.Ponte
PonteRoca
Roca
Miguel
Angel los derechos reservados.
Copyright Oracle Corporation,
2001.
Todos
33
Facultad
Ingeniera
Facultadde
de10-9
IngenieraIndustrial
Industrialyyde
deSistemas
Sistemas
Prof.
Miguel
Angel
Prof.Ing.
Ing.Ponte
PonteRoca
Roca
Miguel
Angel los derechos reservados.
Copyright Oracle Corporation,
2001.
Todos
33
10-10
10-11
10-12
Ejemplos
Ejemplos
10-13
10-14
10-15
10-16
10-17
Funcin ROUND
LafuncinROUNDredondealacolumna,laexpresinoelvaloren nposiciones
decimales. Si el segundo argumento falta o es 0, el valor se redondea a cero
posicionesdecimales.Sies2,elvalorseredondeaadosposicionesdecimales.A
la inversa, si el segundo argumento es 2, el valor se redondea a dos posiciones
decimaleshacialaizquierda.
La funcin ROUND tambin se puede utilizar con funciones de fecha, ms adelante
veremos ejemplos de este tipo.
La Tabla DUAL
La tabla DUAL es propiedad del usuario SYS y todos los usuarios pueden acceder
a ella. Contiene una columna, DUMMY, y una fila con el valor X. Esta tabla resulta
til si desea devolver un valor una sola vez, por ejemplo, el valor de una
constante, una pseudocolumna o una expresin que no est derivada de una tabla
con datos de usuario. La tabla DUAL se utiliza generalmente para completar la
sintaxis de la clusula SELECT, ya que las clusulas SELECT y FROM son las dos
obligatorias y hay algunos clculos que no necesitan seleccionar desde tablas
reales.
10-18
10-19
10-20
3-17
10-21
CopyrightOracle
OracleCorporation,
Corporation,
2001.
Todos
los derechos
reservados.
Copyright
2001.
Todos
los derechos
reservados.
10-22
YEAR
94
MONTH
06
DAY
07
HOUR
5
MINUTE
10
SECOND
43
10-23
10-24
10-25
10-26
10-27
Funciones de Fecha
Las funciones de fecha operan sobre fechas de Oracle. Todas las funciones de fecha
devuelven un valor del tipo de dato DATE excepto MONTHS_BETWEEN, que devuelve un
valor numrico.
MONTHS_BETWEEN(date1, date2)Busca el nmero de meses entre date1 y
date2. El resultado puede ser positivo o negativo. Si date1 es posterior a date2, el
resultado es positivo; si date1 es anterior a date2, el resultado es negativo. La parte no
entera del resultado representa una porcin del mes.
ADD_MONTHS(date, n)Sumanmesesdecalendarioadate.Elvalordendebeser
enteroypuedesernegativo.
NEXT_DAY(date, 'char')Busca la fecha del siguiente da de la semana
especificado ('char') posterior a date. El valor de char puede ser un nmero que
representeundaounacadenadecaracteres.
LAST_DAY(date)Buscalafechadelltimodadelmesenelqueestdate.
ROUND(date[,'fmt'])Devuelve date redondeado a la unidad especificada por el
modelode formato fmt.Sielmodelo deformatofmt est omitido,dateseredondeaal
damsprximo.
TRUNC(date[, 'fmt'])Devuelve dateconlapartedehoradeldatruncadaala
unidad especificada por el modelo de formato fmt. Si el modelo de formato fmt est
omitido,datesetruncaaldamsprximo.
Estalistaesunsubjuegodelasfuncionesdefechadisponibles.Losmodelosdeformatose
tratanmsadelanteenestaleccin.Ejemplosdemodelosdeformatosonmesyao.
10-28
10-29
10-30
10-31
10-32
10-33
Oracle
Funciones Datetime
10-34
Objetivos
Al finalizar esta leccin, debera estar capacitado
para utilizar las siguientes funciones datetime:
TZ_OFFSET
CURRENT_DATE
CURRENT_TIMESTAMP
LOCALTIMESTAMP
DBTIMEZONE
SESSIONTIMEZONE
EXTRACT
FROM_TZ
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
10-35
ZONAS HORARIAS
+07:00
-08:00
+02:00
+10:00
-05:00
10-36
TIMESTAMP
10-37
TZ_OFFSET
10-39
CURRENT_DATE
10-41
CURRENT_TIMESTAMP
10-42
LOCALTIMESTAMP
10-43
DBTIMEZONE y SESSIONTIMEZONE
10-44
EXTRACT
10-45
Conversin de TIMESTAMP
Utilizando FROM_TZ
10-46
10-47
10-48
Resumen
En esta leccin, debera haber aprendido a utilizar las siguientes
funciones:
10-49
TZ_OFFSET
FROM_TZ
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
CURRENT_DATE
CURRENT_TIMESTAMP
LOCALTIMESTAMP
DBTIMEZONE
SESSIONTIMEZONE
EXTRACT
10-50
Prctica 1
10-51
Prctica 1
e.
Visualice CURRENT_DATE,
CURRENT_TIMESTAMP y LOCALTIMESTAMP para esta
sesin. Nota: El resultado podra ser diferente
segn la fecha en que se ejecute el comando.
10-52
Prctica 1
4. Escriba una consulta para extraer el ao (YEAR) de la
columna HIRE_DATE de la tabla EMPLOYEES para
aquellos empleados que trabajan en el departamento 80.
5. Modifique la sesin para definir NLS_DATE_FORMAT en
DD-MON-YYYY.
10-53
10-54
Funciones de Conversin
Adems de los tipos de dato Oracle, las columnas de las tablas de las bases de
datos Oracle9i se pueden definir utilizando tipos de dato ANSI, DB2 y
SQL/DS. Sin embargo, Oracle Server convierte internamente estos tipos de
dato en tipos de dato Oracle.
En algunos casos, Oracle Server utiliza datos de un tipo donde espera datos de
otro tipo distinto. Cuando esto ocurre, Oracle Server puede convertir
automticamente los datos al tipo de dato esperado. Esta conversin la puede
hacer Oracle Server implcitamente o el usuario explcitamente.
Las conversiones implcitas de tipos de dato se realizan de acuerdo con las
reglas explicadas en las dos diapositivas siguientes.
Las conversiones explcitas de tipos de dato se realizan utilizando las
funciones de conversin, que convierten un valor de un tipo de dato en otro.
Generalmente, la forma de los nombres de funcin sigue la convencin data
type TO data type. El primer tipo de dato es el de entrada y el ltimo, el
de salida.
Nota: Aunque la conversin implcita de tipos de dato est disponible, se
recomienda que haga conversiones explcitas de tipos de dato para asegurar la
fiabilidad de las sentencias SQL.
10-55
10-56
10-57
10-58
10-59
10-60
10-61
HH24:MI:SS AM
DD "of" MONTH
12 of OCTOBER
ddspth
3-34
10-62
15:45:32 PM
fourteenth
CopyrightOracle
OracleCorporation,
Corporation,
2001.
Todos
los derechos
reservados.
Copyright
2001.
Todos
los derechos
reservados.
10-63
last_name,
TO_CHAR(hire_date, 'fmDdspth "of" Month
YYYY
fmHH:MI:SS AM')HIREDATE
FROM
employees;
10-64
10-65
10-66
10-67
10-68
10-69
10-70
10-71
10-72
10-73
10-74
Ejercicio 2
Crear una funcin pl/sql llamada factorial que devuelva el factorial de un nmero, por ejemplo 5!
= 1 * 2 * 3 * 4 * 5 = 120
--Clculo del factorial de un nmero
CREATE OR REPLACE FUNCTION factorial (pNum number) RETURN number IS
BEGIN
if pNum = 0 then
return 1;
else
return pNum * factorial(pNum - 1);
end if;
END;
--Complete el ejercicio para mostrar el resultado
10-76
Ejercicio 3
Ejercicio 4
Crear una funcion pl/sql llamada Raiz_Enesima
que reciba como argumentos el Numero y la
raiz n que se quiere calcular para dicho numero,
por ejemplo 25**1/2 = 5
10-77
10-78
10-79