Se pueden incluir en las clsulas SELECT, WHERE y ORDER BY.
Pueden anidarse funciones dentro de funciones. Y existe una gran variedad de funciones para cada tipo de datos: aritmticas, de cadenas de caracteres, de manejo de fechas, de conversin, otras, de grupo. Funciones Aritmticas Funcin Cometido Ejemplo Resultado ABS(n) Calcula el valor absoluto de n. select abs(-15) from dual; 15 select ceil(15.7) from CEIL(n) Calcula el valor entero inmediatamente superior o igual a n. dual; 16 select floor(15.7) from FLOOR(n) Calcula el valor entero inmediatamante inferior o igual a n. dual; 15 select mod(11,4) from MOD(m,n) Calcula el resto resultante de dividir m entre n. dual; 3 select power(3,2) from POWER(m,n) Calcula la potencia n-esima de m. dual; 9 Calcula el redondeo de m a n decimales. Si n<0 el redondeo se select round(123.456,1) ROUND(m,n) from dual; 123.5 efectua a por la izquierda del punto decimal. SQRT(n) Calcula la raz cuadrada de n. select sqrt(4) from dual; 2 select trunc(123.456,1) TRUNC(m,n) Calcula m truncado a n decimales (n puede ser negativo). from dual; 123.4 select sign(-12) from SIGN(n) Calcula el signo de n, devolviendo -1 si n<0, 0 si n=0 y 1 si n>0. dual; -1 Funciones de Cadenas de Caracteres
Funcin Cometido Ejemplo Resultado
Devuelve el carcter cuyo valor CHR(n) select chr(65) from dual; A codificado es n. ASCII(cad) Devuelve el valor ascii de cad. select ascii('A') from dual; 65 Devuelve cad1 concatenada con cad2. select concat(concat(nombre,' es Cano es CONCAT(cad1,cad2) Esta funcin es esquivalente al operador '),oficio) from emp; Presidente, etc. ||. Devuelve la cadena cad con todas sus select lower('MinUsCulAs') from LOWER(cad) dual; minusculas letras convertidas a minsculas. Devuelve la cadena cad con todas sus select upper('maYuSCulAs') from UPPER(cad) dual; MAYUSCULAS letras convertidas a maysculas. Devuelve cad con el primer caracter en select initcap('isabel') from INITCAP(cad) dual; Isabel maysculas. Devuelve cad1 con longitud n, y ajustada LPAD(cad1,n,cad2) a la derecha, rellenando por la izquierda select lpad('P',5,'*') from dual; ****P con cad2. Devuelve cad1 con longitud n, y ajustada RPAD(cad1,n,cad2) a la izquierda, rellenando por la derecha select rpad('P',5,'*') from dual; P**** con cad2. Devuelve cad en la que cada ocurrencia select replace('digo','i','ie') REPLACE(cad,ant,nue) de la cadena ant ha sido sustituida por la from dual; diego cadena nue. Devuelve la sudcadena de cad select substr('ABCDEFG',3,2) from SUBSTR(cad,m,n) compuesta por n caracteres a partir de la dual; CD posicion m. LENGTH(cad) Devuelve la longitud de cad. select length('cadena') from dual; 6
Funciones de Manejo de Fechas
Funcin Cometido Ejemplo Resultado
14-MAR- SYSDATE Devuelve la fecha y hora actuales. select sysdate from dual; 97 Devuelve la fecha d incrementada en n select add_months(sysdate,4) from ADD_MONTHS(d,n) dual; 14-JUL-97 meses. Devuelve la fecha del ltimo da del 31-MAR- LAST_DAY(d) select last_day(sysdate) from dual; mes de d. 97 MONTHS_BETWEEN(d1, Devuelve la diferencia en meses entre select months_between(sysdate,'01-JAN- 97') from dual; 2.43409424 d2) las fechas d1 y d2. Devuelve la fecha del primer da de la select next_day(sysdate, 'sunday') 16-MAR- NEXT_DAY(d,cad) from dual; semana cad despus de la fecha d. 97
Funciones de Conversin de Tipos
Funcin Cometido Ejemplo Resultado
Convierte la cadena cad a un nmero, opcionalmente de select to_number('12345') TO_NUMBER(cad,fmto) from dual; 124345 acuerdo con el formato fmto. Convierte la fecha d a una cadena de caracteres, select to_char(sysdate) '14-MAR- TO_CHAR(d, fmto) from dual; opcionalmente de acuerdo con el formato fmto. 97' Convierte la cadena cad de tipo varchar2 a fecha, select to_date('1-JAN-97') TO_DATE(cad,fmto) from dual; 01-JAN-97 opcionalmente de acuerdo con el formato fmto. Con las fechas pueden utilizarse varios formatos. Estos formatos permiten modificar la presentacin de una fecha. En la siguiente tabla se presentan algunos formatos de fecha y el resultado que generan.
Mscaras de Formato Numricas
Formato Cometido Ejemplo Resultado
cc scc Valor del siglo. select to_char(sysdate,'cc') from dual; 20 select to_char(sysdate,'y,yyy') from y,yyy sy,yyy Ao con coma, con o sin signo. dual; 1,997 yyyy yyy yy select to_char(sysdate,'yyyy') from Ao sin signo con cuatro, tres, dos o un dgitos. dual; 1997 y q Trimestre. select to_char(sysdate,'q') from dual; 1 ww w Nmero de la semana del ao o del mes. select to_char(sysdate,'ww') from dual; 11 mm Nmero del mes. select to_char(sysdate,'mm') from dual; 03 ddd dd d Nmero del da del ao, del mes o de la semana. select to_char(sysdate,'ddd') from dual; 073 hh hh12 hh24 La hora en formato 12h. o 24h. select to_char(sysdate,'hh') from dual; 12 mi Los minutos de la hora. select to_char(sysdate,'mi') from dual; 15 Los segundos dentro del minuto, o desde las 0 select to_char(sysdate,'sssss') from ss sssss dual; 44159 horas.
Mscaras de Formato de Caracteres
Formato Cometido Ejemplo Resultado
select to_char(sysdate,'syear) from nineteen ninety- syear year Ao en Ingls dual; seven month o Nombre del mes o su abreviatura de tres letras. select to_char(sysdate,'month') from march mon dual;
Nombre del da de la semana o su abreviatura de select to_char(sysdate,'day') from
day dy dual; friday tres letras. select to_char(sysdate,'a.m.') from a.m. p.m. El espacio del da. dual; p.m. Indicador del ao respecto al del nacimiento de select to_char(sysdate,'b.c.') from b.c. a.d. dual; a.d. Cristo.
Otras Funciones
Funcin Cometido Ejemplo Resultado
DECODE(var, val1, cod1, Convierte el valor de var, de select decode(oficio, 'Presidente', 'P', 'Director', 'D', 'X') from emp; P, D, X, ... val2, cod2, ..., defecto) acuerdo con la codificacin. Devuelve el mayor valor de una GREATEST(exp1, exp2, ...) sin ejemplo. sin ejemplo. lista. Devuelve el menor valor de una LEAST(cad,fmto) sin ejemplo. sin ejemplo. lista. Devuelve la expresin exp si 450000, NVL(val, exp) val es NULL, y val si en otro select salario+nvl(comision,0) from emp; 350000, ... caso.