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