Funciones de cadena

En la tabla siguiente se enumeran las funciones de manipulación de cadenas. Una aplicación puede determinar qué funciones de cadena son compatibles con un controlador llamando a SQLGetInfo con un tipo de información de SQL_STRING_FUNCTIONS.

Comentarios

Los argumentos indicados como string_exp pueden ser el nombre de una columna, un carácter-string-literal o el resultado de otra función escalar, donde el tipo de datos subyacente se puede representar como SQL_CHAR, SQL_VARCHAR o SQL_LONGVARCHAR.

Los argumentos indicados como character_exp son una cadena de caracteres de longitud variable.

Los argumentos indicados como inicio, longitud o recuento pueden ser un literal numérico o el resultado de otra función escalar, donde el tipo de datos subyacente se puede representar como SQL_TINYINT, SQL_SMALLINT o SQL_INTEGER.

Las funciones de cadena enumeradas aquí están basadas en 1; es decir, el primer carácter de la cadena es el carácter 1.

Las funciones escalares BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH y POSITION string se han agregado en ODBC 3.0 para alinearse con SQL-92.

Función Descripción
ASCII( string_exp ) (ODBC 1.0) Devuelve el valor de código ASCII del carácter situado más a la izquierda de string_exp como un entero.
BIT_LENGTH( string_exp ) (ODBC 3.0) Devuelve la longitud en bits de la expresión de cadena.

No funciona solo para los tipos de datos de cadena, por lo que no convertirá implícitamente string_exp en cadena, sino que devolverá el tamaño (interno) de cualquier tipo de datos que se proporcione.
CHAR( code ) (ODBC 1.0) Devuelve el carácter que tiene el valor de código ASCII especificado por el código. El valor del código debe estar comprendido entre 0 y 255; de lo contrario, el valor devuelto depende del origen de datos.
CHAR_LENGTH( string_exp ) (ODBC 3.0) Devuelve la longitud en caracteres de la expresión de cadena, si la expresión de cadena es de un tipo de datos de caracteres; de lo contrario, devuelve la longitud en bytes de la expresión de cadena (el entero más pequeño no es menor que el número de bits dividido entre 8). (Esta función es igual que la función CHARACTER_LENGTH).
CHARACTER_LENGTH( string_exp ) (ODBC 3.0) Devuelve la longitud en caracteres de la expresión de cadena, si la expresión de cadena es de un tipo de datos de caracteres; de lo contrario, devuelve la longitud en bytes de la expresión de cadena (el entero más pequeño no es menor que el número de bits dividido entre 8). (Esta función es la misma que la función CHAR_LENGTH).
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Devuelve una cadena de caracteres que es el resultado de concatenar string_exp2 a string_exp1. La cadena resultante es dependiente de DBMS. Por ejemplo, si la columna representada por string_exp1 contenía un valor NULL, DB2 devolvería NULL, pero SQL Server devolvería la cadena que no es NULL.
DIFFERENCE( string_exp1,string_exp2) (ODBC 2.0) Devuelve un valor entero que indica la diferencia entre los valores devueltos por la función SOUNDEX para string_exp1 y string_exp2.
INSERT( string_exp1, start, length, string_exp2) (ODBC 1.0) Devuelve una cadena de caracteres en la que se han eliminado los caracteres de longitud de string_exp1, comenzando al principio y donde se ha insertado string_exp2 en string_exp, comenzando al principio.
LCASE( string_exp ) (ODBC 1.0) Devuelve una cadena igual a la de string_exp, con todos los caracteres en mayúsculas convertidos en minúsculas.
LEFT( string_exp, count) (ODBC 1.0) Devuelve los caracteres de recuento más a la izquierda de string_exp.
LENGTH( string_exp ) (ODBC 1.0) Devuelve el número de caracteres de string_exp, excepto los espacios en blanco finales.

LENGTH solo acepta cadenas. Por lo tanto, convertirá implícitamente string_exp en una cadena y devolverá la longitud de esta cadena (no el tamaño interno del tipo de datos).
LOCATE( string_exp1, string_exp2[, start]) (ODBC 1.0) Devuelve la posición inicial de la primera aparición de string_exp1 dentro de string_exp2. La búsqueda de la primera aparición de string_exp1 comienza con la primera posición de carácter en string_exp2 a menos que se especifique el argumento opcional, start. Si se especifica start , la búsqueda comienza con la posición del carácter indicada por el valor de start. La primera posición de carácter de string_exp2 se indica mediante el valor 1. Si no se encuentra string_exp1 en string_exp2, se devuelve el valor 0.

Si una aplicación puede llamar a la función escalar LOCATE con los argumentos string_exp1, string_exp2 e start , el controlador devuelve SQL_FN_STR_LOCATE cuando se llama a SQLGetInfo con una opción de SQL_STRING_FUNCTIONS. Si la aplicación puede llamar a la función escalar LOCATE solo con los argumentos string_exp1 y string_exp2 , el controlador devuelve SQL_FN_STR_LOCATE_2 cuando se llama a SQLGetInfo con una opción de SQL_STRING_FUNCTIONS. Los controladores que admiten la llamada a la función LOCATE con dos o tres argumentos devuelven SQL_FN_STR_LOCATE y SQL_FN_STR_LOCATE_2.
LTRIM( string_exp ) (ODBC 1.0) Devuelve los caracteres de string_exp, con los espacios en blanco iniciales quitados.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Devuelve la longitud en bytes de la expresión de cadena. El resultado es el entero más pequeño que no es inferior al número de bits dividido por 8.

No funciona solo para los tipos de datos de cadena, por lo que no convertirá implícitamente string_exp en cadena, sino que devolverá el tamaño (interno) de cualquier tipo de datos que se proporcione.
POSITION( character_exp IN character_exp) (ODBC 3.0) Devuelve la posición de la primera expresión de caracteres en la segunda expresión de caracteres. El resultado es un numérico exacto con una precisión definida por la implementación y una escala de 0.
REPEAT( string_exp, count) (ODBC 1.0) Devuelve una cadena de caracteres compuesta de string_exp tiempos de recuento repetidos.
REPLACE( string_exp1, string_exp2, string_exp3) (ODBC 1.0) Busque string_exp1 las repeticiones de string_exp2 y reemplace por string_exp3.
RIGHT( string_exp, count) (ODBC 1.0) Devuelve los caracteres de recuento más a la derecha de string_exp.
RTRIM( string_exp ) (ODBC 1.0) Devuelve los caracteres de string_exp con los espacios en blanco finales quitados.
SOUNDEX( string_exp ) (ODBC 2.0) Devuelve una cadena de caracteres dependientes del origen de datos que representa el sonido de las palabras en string_exp. Por ejemplo, SQL Server devuelve un código SOUNDEX de 4 dígitos; Oracle devuelve una representación fonética de cada palabra.
SPACE( count ) (ODBC 2.0) Devuelve una cadena de caracteres que consta de espacios de recuento .
SUBSTRING( string_exp, start, length**)** (ODBC 1.0) Devuelve una cadena de caracteres derivada de string_exp, comenzando en la posición del carácter especificada por start para caracteres de longitud .
UCASE( string_exp ) (ODBC 1.0) Devuelve una cadena igual a la de string_exp, con todos los caracteres en minúsculas convertidos en mayúsculas.