En este artículo vamos a revisar las funciones que nos cambian un tipo de dato en otro y el resto de funciones que nos podemos encontrar.
Vamos a comenzar con las funciones de conversión que pasamos a mostrar en la siguiente tabla:
Ponemos algún ejemplo para que quede todo mas claro.
Ejemplo 1:
Select TO_CHAR(fecha,'mon aaa y yyy') "fecha nueva" from emple;
Esta sentencia nos devolvería una fecha con este aspecto: jun 160 1 991 Donde lo jun seria el nombre del mes, 160 el número del año, 1 el ultimo digito del año y 991 los últimos tres dígitos del año.
Ejemplo 2:
Select TO_CHAR(TO_DATE('01012007','ddmmyyyy'),'Month') "mes" from fechas;
Esta sentencia nos devolvería algo como esto: Enero. Para llegar a este resultado lo primero que hacemos es convertir la cadena a tipo fecha y después el tipo fecha a cadena con el formato de mes.
Ahora pasamos a describir 5 funciones más que nos podemos encontrar pero que se suelen utilizar poco
Pasamos a poner algunos ejemplos.
Ejemplo 1:
Mostramos el nombre de los alumnos y si su asignatura es lengua le ponemos un código 1, si es matemáticas un código 2 y si no es ninguna de esas un 3.
Select alumnos, DECODE (asignatura, 'lenguaje',1, 'matemáticas', 2, 3) "código" from alumnos;
Ejemplo 2:
Mostramos el usuario que está conectado.
Show USER;
Ejemplo 3:
Mostramos el número de bytes que tiene la columna nombre de la tabla usuarios.
Selec t VSIZE(nombre) "tamaño", nombre from usuarios;
Función | Propósito |
TO_CHAR(fecha,'formato') | Esta función nos convierte una fecha de tipo date a una fecha de tipo varchar2 |
TO_CHAR(numero,'formato') | Nos convierte un dato de tipo number a un tipo varchar2 |
TO_DATE(cad,'formato') | Convierte un tipo de dato varchar2 o char a un valor de tipo date con el formato especificado |
TO_NUMBER(cadena,['formato']) | Convierte una cadena a tipo de dato number, y si se le pasa, con el formato especificado |
Ponemos algún ejemplo para que quede todo mas claro.
Ejemplo 1:
Select TO_CHAR(fecha,'mon aaa y yyy') "fecha nueva" from emple;
Esta sentencia nos devolvería una fecha con este aspecto: jun 160 1 991 Donde lo jun seria el nombre del mes, 160 el número del año, 1 el ultimo digito del año y 991 los últimos tres dígitos del año.
Ejemplo 2:
Select TO_CHAR(TO_DATE('01012007','ddmmyyyy'),'Month') "mes" from fechas;
Esta sentencia nos devolvería algo como esto: Enero. Para llegar a este resultado lo primero que hacemos es convertir la cadena a tipo fecha y después el tipo fecha a cadena con el formato de mes.
Ahora pasamos a describir 5 funciones más que nos podemos encontrar pero que se suelen utilizar poco
Función | Proposito |
USER | Nos devuelve el nombre del usuario actual |
VSIZE(expresión) | Nos devuelve el número de bytes que ocupa la expresión. |
UID | Nos devuelve el identificador del usuario actual |
DECODE(var,val1,cod1,val2,cod2 ,valor-por-defecto) | Función que sustituye un valor por otro. Si var es igual a cualquier val de la lista lo sustituye por su correspondiente cod |
DUMP(cadena,[,formato[,comienzo[,longitud]]]) | Visualiza el valor de cadena desde el comienzo hasta longitud, con el formato especificado. |
Pasamos a poner algunos ejemplos.
Ejemplo 1:
Mostramos el nombre de los alumnos y si su asignatura es lengua le ponemos un código 1, si es matemáticas un código 2 y si no es ninguna de esas un 3.
Select alumnos, DECODE (asignatura, 'lenguaje',1, 'matemáticas', 2, 3) "código" from alumnos;
Ejemplo 2:
Mostramos el usuario que está conectado.
Show USER;
Ejemplo 3:
Mostramos el número de bytes que tiene la columna nombre de la tabla usuarios.
Selec t VSIZE(nombre) "tamaño", nombre from usuarios;