Tipos de datos de Oracle PL / SQL: booleano, número, fecha (ejemplo)

Tabla de contenido:

Anonim

¿Qué son los tipos de datos PL / SQL?

Un tipo de datos está asociado con el formato de almacenamiento específico y las restricciones de rango. En Oracle, a cada valor o constante se le asigna un tipo de datos.

Básicamente, define cómo Oracle almacena, maneja y trata los datos durante el almacenamiento y procesamiento de datos.

La principal diferencia entre los tipos de datos PL / SQL y SQL es que el tipo de datos SQL se limita a la columna de la tabla, mientras que los tipos de datos PL / SQL se utilizan en los bloques PL / SQL. Más sobre esto más adelante en el tutorial.

A continuación se muestra el diagrama de diferentes tipos de datos en PL / SQL

En este tutorial, aprenderá:

  • CARÁCTER Tipo de datos
  • NUMBER Tipo de datos
  • Tipo de datos BOOLEAN
  • FECHA Tipo de datos
  • Tipo de datos LOB

CARÁCTER Tipo de datos:

Este tipo de datos básicamente almacena caracteres alfanuméricos en formato de cadena.

Los valores literales siempre deben incluirse entre comillas simples al asignarlos al tipo de datos CHARACTER.

Este tipo de datos de caracteres se clasifica además de la siguiente manera:

  • CHAR Tipo de datos (tamaño de cadena fijo)
  • VARCHAR2 Tipo de datos (tamaño de cadena variable)
  • VARCHAR Tipo de datos
  • NCHAR (tamaño de cadena fijo nativo)
  • NVARCHAR2 (tamaño de cadena variable nativa)
  • CRUDO LARGO Y LARGO
Tipo de datos Descripción Sintaxis
CARBONIZARSE Este tipo de datos almacena el valor de la cadena y el tamaño de la cadena se fija en el momento de declarar la variable.
  • Oracle rellenaría la variable con espacios en blanco si la variable no ocupara todo el tamaño que se ha declarado para ella. Por lo tanto, Oracle asignará la memoria para el tamaño declarado incluso si la variable no la ocupó por completo.
  • La restricción de tamaño para este tipo de datos es de 1 a 2000 bytes.
  • El tipo de datos CHAR es más apropiado para usar siempre que se maneje el tamaño de los datos.
grade CHAR;manager CHAR (10):= 'guru99';
Explicación de la sintaxis:
  • La primera declaración de declaración declaró la variable 'grado' de tipo de datos CHAR con el tamaño máximo de 1 byte (valor predeterminado).
  • La segunda declaración de declaración declaró la variable 'administrador' de tipo de datos CHAR con el tamaño máximo de 10 y asignó el valor 'guru99' que es de 6 bytes. Oracle asignará la memoria de 10 bytes en lugar de 6 bytes en este caso.
VARCHAR2 Este tipo de datos almacena la cadena, pero la longitud de la cadena no es fija.
  • La restricción de tamaño para este tipo de datos es de 1 a 4000 bytes para el tamaño de la columna de la tabla y de 1 a 32767 bytes para las variables.
  • El tamaño se define para cada variable en el momento de la declaración de la variable.
  • Pero Oracle asignará memoria solo después de que se defina la variable, es decir, Oracle considerará solo la longitud real de la cadena que está almacenada en una variable para la asignación de memoria en lugar del tamaño que se le ha dado a una variable en la parte de declaración.
  • Siempre es bueno usar VARCHAR2 en lugar del tipo de datos CHAR para optimizar el uso de la memoria.
manager VARCHAR2(10) := ‘guru99';
Explicación de la sintaxis:
  • La declaración de declaración anterior declaró la variable 'administrador' del tipo de datos VARCHAR2 con el tamaño máximo de 10 y asignó el valor 'guru99' que es de 6 bytes. Oracle asignará memoria de solo 6 bytes en este caso.
VARCHAR Esto es sinónimo del tipo de datos VARCHAR2.
  • Siempre es una buena práctica utilizar VARCHAR2 en lugar de VARCHAR para evitar cambios de comportamiento.
manager VARCHAR(10) := ‘guru99';
Explicación de la sintaxis:
  • La declaración de declaración anterior declaró la variable 'administrador' del tipo de datos VARCHAR con el tamaño máximo de 10 y asignó el valor 'guru99' que es de 6 bytes. Oracle asignará memoria de solo 6 bytes en este caso. (Similar a VARCHAR2)
NCHAR Este tipo de datos es el mismo que el tipo de datos CHAR, pero el juego de caracteres será del juego de caracteres nacional.
  • Este juego de caracteres se puede definir para la sesión usando NLS_PARAMETERS.
  • El juego de caracteres puede ser UTF16 o UTF8.
  • La restricción de tamaño es de 1 a 2000 bytes.
native NCHAR(10);
Explicación de la sintaxis:
  • La declaración de declaración anterior declara la variable 'nativa' del tipo de datos NCHAR con el tamaño máximo de 10.
  • La longitud de esta variable depende del (número de longitudes) por byte como se define en el juego de caracteres.
NVARCHAR2 Este tipo de datos es el mismo que el tipo de datos VARCHAR2, pero el juego de caracteres será del juego de caracteres nacional.
  • Este juego de caracteres se puede definir para la sesión usando NLS_PARAMETERS.
  • El juego de caracteres puede ser UTF16 o UTF8.
  • La restricción de tamaño es de 1 a 4000 bytes.
Native var NVARCHAR2(10):='guru99';
Explicación de la sintaxis:
  • La declaración de declaración anterior declara la variable 'Native_var' del tipo de datos NVARCHAR2 con el tamaño máximo de 10.
LARGO y LARGO Este tipo de datos se utiliza para almacenar texto grande o datos sin procesar hasta un tamaño máximo de 2 GB.
  • Se utilizan principalmente en el diccionario de datos.
  • El tipo de datos LONG se utiliza para almacenar datos de conjuntos de caracteres, mientras que LONG RAW se utiliza para almacenar datos en formato binario.
  • El tipo de datos LONG RAW acepta objetos multimedia, imágenes, etc., mientras que LONG solo funciona con datos que se pueden almacenar mediante el juego de caracteres.
Large_text LONG;Large_raw LONG RAW;
Explicación de la sintaxis:
  • La declaración de declaración anterior declara la variable 'Large_text' de tipo de datos LONG y 'Large_raw' de tipo de datos LONG RAW.
Nota: Oracle no recomienda el uso del tipo de datos LONG. En su lugar, se debe preferir el tipo de datos LOB.

NUMBER Tipo de datos:

Este tipo de datos almacena números de coma flotante o fija de hasta 38 dígitos de precisión. Este tipo de datos se utiliza para trabajar con campos que solo contendrán datos numéricos. La variable se puede declarar con precisión y detalles de dígitos decimales o sin esta información. Los valores no necesitan encerrarse entre comillas mientras se asignan para este tipo de datos.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

Explicación de la sintaxis:

  • En lo anterior, la primera declaración declara que la variable 'A' es de tipo de datos numéricos con precisión total 8 y dígitos decimales 2.
  • La segunda declaración declara que la variable 'B' es de tipo de datos numéricos con una precisión total de 8 y sin dígitos decimales.
  • La tercera declaración es la más genérica, declara que la variable 'C' es de tipo de datos numéricos sin restricción en precisión o lugares decimales. Puede ocupar hasta un máximo de 38 dígitos.

Tipo de datos BOOLEAN:

Este tipo de datos almacena los valores lógicos. Representa VERDADERO o FALSO y se usa principalmente en declaraciones condicionales. Los valores no necesitan encerrarse entre comillas mientras se asignan para este tipo de datos.

Var1 BOOLEAN;

Explicación de la sintaxis:

  • En lo anterior, la variable 'Var1' se declara como tipo de datos BOOLEAN. La salida del código será verdadera o falsa según la condición establecida.

FECHA Tipo de datos:

Este tipo de datos almacena los valores en formato de fecha, como fecha, mes y año. Siempre que una variable se define con el tipo de datos DATE junto con la fecha, puede contener información de hora y, de forma predeterminada, la información de hora se establece en 12:00:00 si no se especifica. Los valores deben encerrarse entre comillas mientras se asignan para este tipo de datos.

El formato de hora estándar de Oracle para entrada y salida es 'DD-MON-YY' y nuevamente se establece en NLS_PARAMETERS (NLS_DATE_FORMAT) en el nivel de sesión.

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

Explicación de la sintaxis:

  • En la variable 'newyear' arriba, está declarada como tipo de datos DATE y se asigna el valor de Jan 1 st , 2015 fecha.
  • La segunda declaración declara la variable current_date como tipo de datos DATE y le asigna el valor con la fecha actual del sistema.
  • Ambas variables contienen la información de tiempo.

Tipo de datos LOB:

Este tipo de datos se utiliza principalmente para almacenar y manipular grandes bloques de datos no estructurados como imágenes, archivos multimedia, etc. Oracle prefiere LOB en lugar del tipo de datos LONG ya que es más flexible que el tipo de datos LONG. Las siguientes son algunas de las principales ventajas de LOB sobre el tipo de datos LONG.

  • El número de columnas en una tabla con el tipo de datos LONG está limitado a 1, mientras que una tabla no tiene restricciones en el número de columnas con el tipo de datos LOB.
  • La herramienta de interfaz de datos acepta el tipo de datos LOB de la tabla durante la replicación de datos, pero omite la columna LONG de la tabla. Estas columnas LARGAS deben replicarse manualmente.
  • El tamaño de la columna LONG es de 2 GB, mientras que LOB puede almacenar hasta 128 TB.
  • Oracle mejora constantemente el tipo de datos LOB en cada una de sus versiones de acuerdo con los requisitos modernos, mientras que el tipo de datos LONG es constante y no recibe muchas actualizaciones.

Por lo tanto, siempre es bueno usar el tipo de datos LOB en lugar del tipo de datos LONG. A continuación se muestran los diferentes tipos de datos LOB. Pueden almacenar hasta 128 terabytes.

  1. GOTA
  2. CLOB y NCLOB
  3. BFILE
Tipo de datos Descripción Sintaxis
GOTA

Este tipo de datos almacena los datos LOB en formato de archivo binario hasta un tamaño máximo de 128 TB. Esto no almacena datos basados ​​en los detalles del juego de caracteres, por lo que puede almacenar los datos no estructurados como objetos multimedia, imágenes, etc.

Binary_data BLOB;

Explicación de la sintaxis:

  • En lo anterior, la variable 'Binary_data' se declara como BLOB.
CLOB y NCLOB

El tipo de datos CLOB almacena los datos LOB en el juego de caracteres, mientras que NCLOB almacena los datos en el juego de caracteres nativo. Dado que estos tipos de datos utilizan almacenamiento basado en juegos de caracteres, no pueden almacenar datos como multimedia, imágenes, etc. que no se pueden poner en una cadena de caracteres. El tamaño máximo de estos tipos de datos es de 128 TB.

Charac_data CLOB;

Explicación de la sintaxis:

  • En lo anterior, la variable 'Charac_data' se declara como tipo de datos CLOB.
BFILE
  • BFILE son los tipos de datos que almacenaron los datos en formato binario no estructurados fuera de la base de datos como un archivo del sistema operativo.
  • El tamaño de BFILE es para un sistema operativo limitado, y son archivos de solo lectura y no se pueden modificar.

Resumen

Hemos cubierto los diferentes tipos de datos simples que están disponibles en PL / SQL junto con su sintaxis. Aprenderemos sobre tipos de datos complejos en más temas.