Sintaxis.
SUBSTR(char, posicion, longitud_subchar)
Propósito.
La funcion SUBSTR extrae una subcadena de char, a partir de posicion y de longitud_subchar de caracteres de longitud. SUBSTR calcula la longitud usando el set de caracteres de entrada.
- Si posicion es 0, entonces se trata como 1.
- Si posicion es un valor positivo, entonces la base de datos Oracle cuenta desde el principio de char hasta encontrar el primer carácter.
- Si posicion es un valor negativo, entonces Oracle cuenta hacia atrás desde el final de char.
- Si longitud_subchar se omite, Oracle devuelve todos los caracteres hasta el final de char. Si longitud_subchar es menor que 1, entonces Oracle devuelve null.
char puede ser cualquiera de los tipos de datos CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, o NCLOB. Tanto posicion y longitud_subchar debe ser de tipo de datos NUMBER, o cualquier tipo de datos que se pueda convertir implícitamente a NUMBER, y debe resolverse a un entero. El valor de retorno es del mismo tipo de datos de char. Números en punto flotante pasados como argumentos a SUBSTR() son convertidos automáticamente en enteros.
Ejemplos:
El siguiente ejemplo extrae una subcadena de la cadena ‘FHGATONKK’
SELECT SUBSTR('FHGATONKK',3,4) "Subcadena"
FROM DUAL;
Subcadena
-------------
GATO
SELECT SUBSTR('FHGATONKK',-7,4) "Subcadena"
FROM DUAL;
Subcadena
-------------
GATO