Resumen: en este tutorial, aprenderá sobre el tipo de datos Oracle VARCHAR2
y cómo utilizarlo para definir columnas de cadenas de caracteres de longitud variable.
Introducción al tipo de datos Oracle VARCHAR2
Para almacenar cadenas de caracteres de longitud variable, se utiliza el tipo de datos Oracle VARCHAR2
. Una columna VARCHAR2
puede almacenar un valor que va de 1 a 4000 bytes. Esto significa que para un conjunto de caracteres de un solo byte, se pueden almacenar hasta 4000 caracteres en una columna VARCHAR2
.
Cuando se crea una tabla con una columna VARCHAR2
, se debe especificar la longitud máxima de la cadena, ya sea en bytes:
o en caracteres
Por defecto, Oracle utiliza BYTE
si no se especifica explícitamente BYTE
o CHAR
después del max_size
. En otras palabras, una columna VARCHAR2(N)
puede contener hasta N
bytes de caracteres.
Si almacena una cadena de caracteres cuyo tamaño excede el tamaño máximo de la columna VARCHAR2
, Oracle emite un error.
Por ejemplo, si define una columna VARCHAR2
con un tamaño máximo es 20. En un conjunto de caracteres de un byte, puede almacenar hasta 20 caracteres. Si almacena 21 caracteres o más, Oracle devuelve un error.
Además, si almacena 10 caracteres en una columna VARCHAR2(20)
, Oracle utiliza sólo 10 bytes para el almacenamiento, no 20 bytes. Por lo tanto, el uso del tipo de datos VARCHAR2
ayuda a ahorrar espacios utilizados por la tabla.
Cuando se comparan valores VARCHAR2
, Oracle utiliza la semántica de comparación sin relleno.
Oracle VARCHAR2 max length
Desde Oracle Database 12c, se puede especificar el tamaño máximo de 32767 para el tipo de datos VARCHAR2
. Oracle utiliza el parámetro MAX_STRING_SIZE
para controlar el tamaño máximo. Si el parámetro MAX_STRING_SIZE
es STANDARD
, el tamaño máximo para VARCHAR2
es de 4000 bytes. Si MAX_STRING_SIZE
es EXTENDED
, el límite de tamaño para VARCHAR2
es de 32767.
Para obtener el valor del parámetro MAX_STRING_SIZE
, se utiliza la siguiente consulta:
O se utiliza la siguiente sentencia:
Ejemplos de Oracle VARCHAR2
La siguiente sentencia crea una nueva tabla denominada econtacts
para almacenar los contactos de emergencia de los empleados.
La tabla econtacts
tiene tres columnas VARCHAR2
: first_name
, last_name
y phone
.
La siguiente sentencia inserta una nueva fila en la tabla econtacts
:
Ha funcionado como se esperaba porque los datos de entrada no superan el tamaño máximo de la columna VARCHAR2
.
Sin embargo, la siguiente sentencia falla al insertar:
Debido a que el nombre de entrada excede la longitud máxima de la columna first_name
, Oracle emitió el siguiente error:
En este tutorial, ha aprendido sobre el Oracle VARCHAR2
y cómo utilizar el tipo de datos VARCHAR2
para definir columnas de cadenas de caracteres de longitud variable en una tabla.
- ¿Ha sido útil este tutorial?
- SíNo