Tipos de datos en PL/SQL

Existe una enorme cantidad de tipos de datos que puede manejar PL/SQL, en mi opinión llega a ser abrumadora, sin embargo, podemos clasificarlos en cuatro grandes grupos:

  • Datos de tipo numéricos
  • Datos de tipo carácter
  • Datos de tipo Boolean (true y false)
  • Datos de tipo fecha

A partir de estos cuatro grandes se desprenden los demás:

  • Datos de tipo numéricos: BINARY_DOUBLE, BINARY_FLOAT, BINARY_INTEGER, DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INT, INTEGER, NATURAL, NATURALN, NUMBER, NUMERIC, PLS_INTEGER, POSITIVE, POSITIVEN, REAL, SIGNTYPE, SMALLINT
  • Datos de tipo carácter: CHAR, CHARACTER, LONG, LONG RAW, NCHAR, NVARCHAR2, RAW, ROWID, STRING, UROWID, VARCHAR,
  • Datos de tipo Boolean: BOOLEAN
  • Datos tipo fecha: DATE, TIMESTAMP, TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND

No te rompas demasiado la cabeza. La cantidad de tipos de datos de PL/SQL puede llegar a ser demasiado abrumadora. En más de 20 años de trabajar con este lengueje te puedo decir que el 98% de las veces uso únicamente cuatro tipos: VARCHAR2, NUMBER, DATE y BOOLEAN, así que definitivamente te recomiendo que empieces ahí.

Tipos de datos BINARY_FLOAT y BINARY_DOUBLE

Números de coma flotante de precisión simple con formato IEEE 754 de precisión simple y precisión doble. Estos tipos se utilizan principalmente para cálculos científicos de alta velocidad.

Tipo de dato PLS_INTEGER

Utiliza el tipo de datos PLS_INTEGER para almacenar enteros con signo. Su rango de magnitud es de -2147483648 a 2147483647, representado en 32 bits. Los valores PLS_INTEGER requieren menos almacenamiento que NUMBER valores y NUMBER subtipos

Tipo de dato NUMBER

El tipo de datos NUMBER almacena de manera confiable números de coma fija o de coma flotante con valores absolutos en el rango 1E-130 hasta (pero sin incluir) 1.0E126. Una variable NUMBER también puede representar 0

Tipo de dato VARCHAR2

Utiliza el tipo de datos VARCHAR2 para almacenar datos de caracteres de longitud variable. La forma en que se representan los datos internamente depende del juego de caracteres de la base de datos. El tipo de datos VARCHAR2 toma un parámetro obligatorio que especifica un tamaño máximo de hasta 32767 bytes.

Tipo de dato CHAR

Utiliza el tipo de datos CHAR para almacenar datos de caracteres de longitud fija. La forma en que se representan los datos internamente depende del juego de caracteres de la base de datos. El tipo de datos CHAR toma un parámetro opcional que le permite especificar un tamaño máximo de hasta 32767 bytes.

Tipos de datos LONG Y LONG RAW

Utiliza el tipo de datos LONG para almacenar cadenas de caracteres de longitud variable. El tipo de datos LONG es como el tipo de datos VARCHAR2, excepto que el tamaño máximo de un valor LONG es 32760 bytes. Utiliza el tipo de datos LONG RAW para almacenar datos binarios o cadenas de bytes. Los datos LONG RAW son como datos LONG, excepto que PL / SQL no interpreta los datos LONG RAW. El tamaño máximo de un valor LONG RAW es 32760 bytes. Los tipos de datos LONG y LONG RAW son compatibles solo por compatibilidad con las aplicaciones existentes. Para aplicaciones nuevas, use CLOB o NCLOB en lugar de LONG y BLOB o BFILE en lugar de LONG RAW.

Tipo de dato RAW

Utiliza el tipo de datos RAW para almacenar datos binarios o cadenas de bytes. Por ejemplo, una variable RAW puede almacenar una secuencia de caracteres gráficos o una imagen digitalizada. Los datos sin procesar son como los datos VARCHAR2, excepto que PL / SQL no interpreta los datos sin procesar. Del mismo modo, Oracle Net no realiza conversiones de juegos de caracteres cuando transmite datos sin procesar de un sistema a otro.

Tipos de datos ROWID y UROWID

Internamente, cada tabla de la base de datos tiene una pseudocolumna ROWID, que almacena valores binarios llamados rowids. Cada rowid representa la dirección de almacenamiento de una fila. Un rowid físico identifica una fila en una tabla ordinaria. Un rowid lógico identifica una fila en una tabla organizada por índice.

Tipo de dato NCHAR

Utilice el tipo de datos NCHAR para almacenar datos de caracteres nacionales de longitud fija (rellenados en blanco si es necesario). La forma en que se representan los datos internamente depende del juego de caracteres nacional especificado cuando se creó la base de datos, que podría usar una codificación de ancho variable (UTF8) o una codificación de ancho fijo (AL16UTF16)

Tipo de dato BOOLEAN

Utiliza el tipo de datos BOOLEAN para almacenar los valores lógicos VERDADERO, FALSO y NULO (que significa un valor perdido, desconocido o inaplicable). Solo se permiten operaciones lógicas en variables BOOLEAN. El tipo de datos BOOLEAN no toma parámetros. Solo los valores TRUE, FALSE y NULL se pueden asignar a una variable BOOLEAN.

Tipo de dato DATE

Utiliza el tipo de datos DATE para almacenar fechas y horas de duración fija, que incluyen la hora del día en segundos desde la medianoche. La parte de la fecha tiene como valor predeterminado el primer día del mes actual; la porción de tiempo predeterminada es la medianoche. La función de fecha SYSDATE devuelve la fecha y hora actuales.

Tipo de dato TIMESTAMP

El tipo de datos TIMESTAMP, que amplía el tipo de datos DATE, almacena el año, mes, día, hora, minuto y segundo.

Tipo de dato TIMESTAMP WITH TIME ZONE

El tipo de datos TIMESTAMP WITH TIME ZONE, que amplía el tipo de datos TIMESTAMP, incluye un desplazamiento de zona horaria. El desplazamiento de la zona horaria es la diferencia (en horas y minutos) entre la hora local y la hora universal coordinada (UTC), anteriormente hora media de Greenwich.

Tipo de dato TIMESTAMP WITH LOCAL TIME ZONE

El tipo de datos TIMESTAMP WITH LOCAL TIME ZONE, que amplía el tipo de datos TIMESTAMP, incluye un desplazamiento de zona horaria. El desplazamiento de la zona horaria es la diferencia (en horas y minutos) entre la hora local y la hora universal coordinada (UTC), anteriormente hora media de Greenwich.