Oracle Types de données PL/SQL : booléen, nombre, date [exemple]

Qu'est-ce que les types de données PL/SQL ?

Types de données en PL/SQL sont utilisés pour définir comment les données seront stockées, gérées et traitées par Oracle pendant le stockage et le traitement des données. Les types de données sont associés aux contraintes de format de stockage et de plage spécifiques. Dans Oracle, chaque valeur ou constante se voit attribuer un type de données.

La principale différence entre PL/SQL et SQL Les types de données sont les types de données SQL sont limités à la colonne de table tandis que les types de données PL/SQL sont utilisés dans le Blocs PL/SQL. Nous en parlerons plus tard dans le didacticiel.

Voici le schéma des différents Oracle Types de données PL/SQL :

Types de données PL / SQL
Différents types de données en PL/SQL

CARACTÈRE PL/SQL Type de données

Ce type de données stocke essentiellement les caractères alphanumériques au format chaîne.

Les valeurs littérales doivent toujours être placées entre guillemets simples lors de leur attribution au type de données CHARACTER.

Ce type de données de caractère est en outre classé comme suit :

  • CHAR Type de données (taille de chaîne fixe)
  • VARCHAR2 Type de données (taille de chaîne variable)
  • Type de données VARCHAR
  • NCHAR (taille de chaîne fixe native)
  • NVARCHAR2 (taille de chaîne variable native)
  • LONG et LONG BRUT
Type de données Description Syntaxe
CARBONISER Ce type de données stocke la valeur de la chaîne et la taille de la chaîne est fixée au moment de la déclaration du variable.

  • Oracle serait rempli de blanc la variable si la variable n'occupait pas toute la taille qui lui a été déclarée, donc Oracle allouera la mémoire pour la taille déclarée même si la variable ne l'occupait pas entièrement.
  • La restriction de taille pour ce type de données est comprise entre 1 et 2000 octets.
  • Le type de données CHAR est plus approprié à utiliser partout où la taille des données sera gérée.
grade CHAR;
manager CHAR (10):= 'guru99';

Explication de la syntaxe :

  • La première instruction de déclaration a déclaré la variable « grade » du type de données CHAR avec une taille maximale de 1 octet (valeur par défaut).
  • La deuxième instruction de déclaration a déclaré la variable 'manager' de type de données CHAR avec une taille maximale de 10 et lui a attribué la valeur 'guru99' qui est de 6 octets. Oracle allouera la mémoire de 10 octets au lieu de 6 octets dans ce cas.
VARCHAR2 Ce type de données stocke la chaîne, mais la longueur de la chaîne n'est pas fixe.

  • La restriction de taille pour ce type de données est de 1 à 4000 1 octets pour la taille des colonnes du tableau et de 32767 à octets pour les variables.
  • La taille est définie pour chaque variable au moment de la déclaration de la variable.
  • Mais Oracle n'allouera de la mémoire qu'une fois la variable définie, c'est-à-dire Oracle prendra en compte uniquement la longueur réelle de la chaîne stockée dans une variable pour l'allocation de mémoire plutôt que la taille qui a été donnée pour une variable dans la partie déclaration.
  • Il est toujours bon d'utiliser VARCHAR2 au lieu du type de données CHAR pour optimiser l'utilisation de la mémoire.
manager VARCHAR2(10) := ‘guru99';

Explication de la syntaxe :

  • L'instruction de déclaration ci-dessus a déclaré la variable 'manager' du type de données VARCHAR2 avec une taille maximale de 10 et a attribué la valeur 'guru99' qui est de 6 octets. Oracle allouera de la mémoire de seulement 6 octets dans ce cas.
VARCHAR Ceci est synonyme du type de données VARCHAR2.

  • C'est toujours une bonne pratique d'utiliser VARCHAR2 au lieu de VARCHAR pour éviter les changements de comportement.
manager VARCHAR(10) := ‘guru99';

Explication de la syntaxe :

  • L'instruction de déclaration ci-dessus a déclaré la variable 'manager' de type de données VARCHAR avec une taille maximale de 10 et lui a attribué la valeur 'guru99' qui est de 6 octets. Oracle allouera de la mémoire de seulement 6 octets dans ce cas. (Similaire à VARCHAR2)
NCHAR Ce type de données est identique au type de données CHAR, mais le jeu de caractères sera le jeu de caractères national.

  • Ce jeu de caractères peut être défini pour la session à l'aide de NLS_PARAMETERS.
  • Le jeu de caractères peut être UTF16 ou UTF8.
  • La restriction de taille est de 1 à 2000 octets.
native NCHAR(10);

Explication de la syntaxe :

  • L'instruction de déclaration ci-dessus déclare la variable « native » du type de données NCHAR avec une taille maximale de 10.
  • La longueur de cette variable dépend du (nombre de longueurs) par octet tel que défini dans le jeu de caractères.
NVARCHAR2 Ce type de données est identique au type de données VARCHAR2, mais le jeu de caractères sera celui du jeu de caractères national.

  • Ce jeu de caractères peut être défini pour la session à l'aide de NLS_PARAMETERS.
  • Le jeu de caractères peut être UTF16 ou UTF8.
  • La restriction de taille est de 1 à 4000 octets.
Native var NVARCHAR2(10):='guru99';

Explication de la syntaxe :

  • L'instruction de déclaration ci-dessus déclare la variable 'Native_var' du type de données NVARCHAR2 avec une taille maximale de 10.
LONG et LONGRAW Ce type de données est utilisé pour stocker du texte volumineux ou des données brutes jusqu'à une taille maximale de 2 Go.

  • Ceux-ci sont principalement utilisés dans le dictionnaire de données.
  • Le type de données LONG est utilisé pour stocker les données du jeu de caractères, tandis que LONG RAW est utilisé pour stocker les données au format binaire.
  • Le type de données LONG RAW accepte les objets multimédias, les images, etc. tandis que LONG ne fonctionne que sur les données qui peuvent être stockées à l'aide d'un jeu de caractères.
Large_text LONG;
Large_raw LONG RAW;

Explication de la syntaxe :

  • L'instruction de déclaration ci-dessus déclare la variable 'Large_text' de type de données LONG et 'Large_raw' de type de données LONG RAW.

Attention: L'utilisation du type de données LONG n'est pas recommandée par Oracle. Au lieu de cela, le type de données LOB doit être préféré.

PL/SQL NUMÉRO Type de données

Ce type de données stocke des nombres à virgule fixe ou flottante jusqu'à 38 chiffres de précision. Ce type de données est utilisé pour travailler avec des champs qui contiendront uniquement des données numériques. La variable peut être déclarée soit avec précision et détails décimaux, soit sans ces informations. Il n'est pas nécessaire que les valeurs soient placées entre guillemets lors de l'attribution de ce type de données.

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

Explication de la syntaxe :

  • Dans ce qui précède, la première déclaration déclare que la variable « A » est de type numérique avec une précision totale de 8 et des chiffres décimaux de 2.
  • La deuxième déclaration déclare que la variable « B » est de type numérique avec une précision totale de 8 et sans chiffres décimaux.
  • La troisième déclaration est la plus générique, déclare que la variable « C » est de type numérique sans restriction de précision ou de décimales. Il peut contenir jusqu'à 38 chiffres maximum.

Type de données PL/SQL BOOLÉEN

Ce type de données stocke les valeurs logiques. Oracle Le type de données booléen représente VRAI ou FAUX et est principalement utilisé dans les instructions conditionnelles. Il n'est pas nécessaire que les valeurs soient placées entre guillemets lors de l'attribution de ce type de données.

Var1 BOOLEAN;

Explication de la syntaxe :

  • Dans ce qui précède, la variable « Var1 » est déclarée comme type de données BOOLEAN. La sortie du code sera vraie ou fausse en fonction de la condition définie.

Type de données PL/SQL DATE

Ce type de données stocke les valeurs au format date, comme date, mois et année. Chaque fois qu'une variable est définie avec le type de données DATE avec la date, elle peut contenir des informations temporelles et, par défaut, les informations temporelles sont définies sur 12:00:00 si elles ne sont pas spécifiées. Les valeurs doivent être placées entre guillemets lors de l'attribution de ce type de données.

La norme Oracle le format de l'heure pour l'entrée et la sortie est « DD-MON-YY » et il est à nouveau défini sur NLS_PARAMETERS (NLS_DATE_FORMAT) au niveau de la session.

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

Explication de la syntaxe :

  • Dans ce qui précède, la variable « newyear » est déclarée comme type de données DATE et reçoit la valeur du 1er janvier.st, date de 2015.
  • La deuxième déclaration déclare la variable current_date comme type de données DATE et attribue la valeur avec la date système actuelle.
  • Ces deux variables contiennent les informations temporelles.

Type de données PL/SQL LOB

Ce type de données est principalement utilisé pour stocker et manipuler de gros blocs de données non structurées comme des images, des fichiers multimédias, etc. Oracle préfère LOB au type de données LONG car il est plus flexible que le type de données LONG. Vous trouverez ci-dessous les principaux avantages du type de données LOB par rapport au type de données LONG.

  • Le nombre de colonnes dans une table avec le type de données LONG est limité à 1, alors qu'une table n'a aucune restriction sur le nombre de colonnes avec le type de données LOB.
  • L'outil d'interface de données accepte le type de données LOB de la table lors de la réplication des données, mais il omet la colonne LONG de la table. Ces colonnes LONG doivent être répliquées manuellement.
  • La taille de la colonne LONG est de 2 Go, tandis que LOB peut stocker jusqu'à 128 To.
  • Oracle améliore constamment le type de données LOB dans chacune de ses versions conformément aux exigences modernes, tandis que le type de données LONG est constant et ne reçoit pas beaucoup de mises à jour.

Il est donc toujours bon d’utiliser le type de données LOB au lieu du type de données LONG. Voici les différents types de données LOB. Ils peuvent stocker jusqu’à 128 téraoctets.

  1. BLOB
  2. CLOB et NCLOB
  3. FICHIER BF
Type de données Description Syntaxe
BLOB Ce type de données stocke les données LOB au format de fichier binaire jusqu'à une taille maximale de 128 To. Cela ne stocke pas les données basées sur les détails du jeu de caractères, de sorte qu'il puisse stocker les données non structurées telles que les objets multimédias, les images, etc.
Binary_data BLOB;

Explication de la syntaxe :

  • Dans ce qui précède, la variable « Binary_data » est déclarée comme BLOB.
CLOB et NCLOB Le type de données CLOB stocke les données LOB dans le jeu de caractères, tandis que NCLOB stocke les données dans le jeu de caractères natif. Étant donné que ces types de données utilisent un stockage basé sur un jeu de caractères, ils ne peuvent pas stocker les données telles que le multimédia, les images, etc. qui ne peuvent pas être placées dans une chaîne de caractères. La taille maximale de ces types de données est de 128 To.
Charac_data CLOB;

Explication de la syntaxe :

  • Dans ce qui précède, la variable 'Charac_data' est déclarée comme type de données CLOB.
FICHIER BF
  • BFILE sont les types de données qui stockaient les données au format binaire non structuré en dehors de la base de données en tant que fichier du système d'exploitation.
  • La taille de BFILE est adaptée à un système d'exploitation limité, et ce sont des fichiers en lecture seule qui ne peuvent pas être modifiés.

Résumé

Nous avons couvert les différents types de données simples disponibles dans PL / SQL ainsi que leur syntaxe. Nous découvrirons les types de données complexes dans d’autres sujets.