Volvemos a la programacion con un poco de Oracle. Las funciones de agregado que vamos a ver con las de cadena y estas operan sobre campos o constantes como su propio nombre indica de tipo cadena de caracteres.
Existen funciones de cadena:
- Que calculan una cadena apartir de otra u otras.
- Las que devuelven longitud
- Y las que buscan una cadena en otra
Funciones que calculan una cadena apartir de otra u otras.
CHR (n) – Nos da el carácter de código acsii de n.
SELECT
CHR(87)
FROM
DUAL;
CONCAT (cad1, cad2) – Concatena dos cadenas. Si queremos concatenar más deberemos anidar varias concat.
SELECT
CONCAT('hola', 'adios')
FROM
DUAL;
INITCAP (cad) – Devuelve la cadena en formato título, primera letra de cada palabra en mayuscula.
SELECT
INITCAP('hola')
FROM
DUAL;
LOWER (cad) – Toda la cadena casden minucula
SELECT
LOWER('HOLA')
FROM
DUAL;
UPPER (cad) – Toda la cadena cad en mayuscula
SELECT
UPPER('hola')
FROM
DUAL;
LPAD (cad1, n , cad2) – Rellena cad 1 con copias de cad 2 hasta llegar a longitud n. desde la izquierda. cad 2 opcional, sino con espacios en blanco.
SELECT
LPAD('e',6,'a')
FROM
DUAL;
RPAD (cad1, n , cad2) – Rellena cad 1 con copias de cad 2 hasta llegar a longitud n. desde la derecha. cad 2 opcional, sino con espacios en blanco.
SELECT
RPAD('e',6,'a')
FROM
DUAL;
LTRIM (cad, set) RTRIM (cad, set) TRIM (cad, set) – Quita de la izq, drch o las dos respectivamente todos los caracteres que hay en set. Set opcional se cambia por espacios en blanco.
SELECT
LTRIM('hola','ho')
FROM
DUAL;
SELECT
RTRIM('hola','la')
FROM
DUAL;
SELECT
TRIM(' hola')
FROM
DUAL;
Funciones que devuelven longitud
LENGTH (cadena) – calcula la longitud de la cadena
SELECT
LENGTH('adios')
FROM
DUAL;
VSIZE () -Similar a LENGTH.
Funciones que buscan una cadena en otra
INSTR (cad, subcad, pos, ocurr) – busca la subcad en la cad desde la pos y nos dice la posición de la ocurr.
SELECT
INSTR('JOSE FCO','SE')
FROM
DUAL;
O
SELECT
INSTR('JOSE FCO','O',1,2)
FROM
DUAL;
Otras funciones
TRANSLATE (cad, from,to) – Remplaza caracteres de cad el from por el to
SELECT
TRANSLATE ('jose fco','jf','wx')
FROM
DUAL;
REPLACE (cad, buscar, cambiar) – Devuelve la cad con el buscar cambiado por el cambiar
SELECT
REPLACE ('jose fco','jo','wx')
FROM
DUAL;
SUBSTR (cad, m, n) – Devuelve una subcad de n a partir de m. si m positivo desde inicio, si m negativo desde final. Si n hasta el final
SELECT
SUBSTR('jose',2,3)
FROM
DUAL;
CONVERT (cadena, nuevo char set, antiguo char set) – devuelve cadena con el nuevo mapa de caracteres.
SELECT
CONVERT('señal', 'US7ASCII', 'WE8ISO8859P1')
FROM
DUAL;