Qu'est-ce que le type d'enregistrement?
Un type d'enregistrement est un type de données complexe qui permet au programmeur de créer un nouveau type de données avec la structure de colonne souhaitée.
- Il regroupe une ou plusieurs colonnes pour former un nouveau type de données
- Ces colonnes auront leur propre nom et type de données
- Un type d'enregistrement peut accepter les données
- En un seul enregistrement composé de plusieurs colonnes OU
- Il peut accepter la valeur d'une colonne particulière d'un enregistrement
- Le type d'enregistrement signifie simplement un nouveau type de données. Une fois le type d'enregistrement créé, il sera stocké en tant que nouveau type de données dans la base de données et le même sera utilisé pour déclarer une variable dans les programmes.
- Il utilisera le mot-clé 'TYPE' pour indiquer au compilateur qu'il crée le nouveau type de données.
- Il peut être créé au " niveau de la base de données" qui peut être stocké en tant qu'objets de base de données, utilisé partout dans la base de données ou il peut être créé au " niveau des sous-programmes" , qui n'est visible qu'à l'intérieur des sous-programmes.
- Le type d'enregistrement au niveau de la base de données peut également être déclaré pour les colonnes de la table afin qu'une seule colonne puisse contenir les données complexes.
- Les données de ces types de données sont accessibles en se référant à leur nom_variable suivi de l'opérateur de période (.) Suivi de nom_colonne, c'est-à-dire '
. '
Syntaxe de déclaration au niveau de la base de données:
CREATE TYPEIS RECORD( ,);
Dans la première syntaxe, nous pouvons voir le mot-clé 'CREATE TYPE' qui indique au compilateur de créer le type d'enregistrement nommé "type_name_db" avec la colonne spécifiée comme objet de base de données.
Ceci est donné comme une déclaration individuelle et non à l'intérieur d'un bloc.
Syntaxe de la déclaration au niveau du sous-programme:
DECLARETYPEIS RECORD( ,);BEGIN ;END;
Dans la syntaxe, nous créons le type d'enregistrement nommé "type_name" uniquement à l'intérieur du sous-programme.
Dans les deux méthodes de déclaration, la manière de définir la colonne et le type de données est similaire.
Exemple 1: Type RECORD en tant qu'objet de base de données
Dans ce programme, nous allons voir comment créer un "Type d'enregistrement" en tant qu'objet de base de données. Nous allons créer le type d'enregistrement 'emp_det' avec quatre colonnes. Les colonnes et leur type de données sont les suivants:
- EMP_NO (NUMBER)
- EMP_NAME (VARCHAR2 (150))
- GESTIONNAIRE (NOMBRE)
- SALAIRE (NOMBRE)
CREATE TYPE emp_det IS OBJECT(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);/Production:
Type created
Explication du code:
- Le code ci-dessus créera le type emp_det en tant qu'objet de base de données.
- Il aura 4 colonnes emp_no, emp_name, manager et salaire tels que définis.
- Maintenant, 'emp_det' est similaire à d'autres types de données (comme NUMBER, VARCHAR @, etc.) et il est visible dans toute la base de données. Cela peut donc être utilisé dans toute la base de données pour déclarer la variable de ce type.
Production:
Création du type 'emp_det' comme type d'enregistrement au niveau de la base de données.
Exemple 2: Type d'enregistrement au niveau du sous-programme - Accès au niveau de la colonne
Dans cet exemple, nous allons voir comment créer un type d'enregistrement au niveau du sous-programme et comment remplir et extraire les valeurs de celui-ci par niveau de colonne.
Nous allons créer "emp_det" record_type au niveau du sous-programme, et nous allons utiliser le même pour remplir et afficher les données de celui-ci.
DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME VARCHAR2(150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGINguru99_emp_rec.emp_no:= 1001;guru99_emp_rec.emp_name:=:'XXX';guru99_emp_rec.manager:= 1000;guru99_emp_rec.salary:=10000;dbms_output.put.line('Employee Detail');dbms_output.put_line ('Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line ('Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line ('Employee Salary: ' ||guru99_emp_rec.salary);dbms_output.put_line ('Employee Manager Number: '||guru99_emp_rec.manager);END;/
Production:
Employee DetailEmployee Number: 1001Employee Name: XXXEmployee Salary: 10000Employee Manager Number: 1000
Explication du code:
- Ligne de code 2-8 : Le type d'enregistrement 'emp_det' est déclaré avec les colonnes emp_no, emp_name, salaire et manager de type de données NUMBER, VARCHAR2, NUMBER, NUMBER.
- Ligne de code 9: la variable guru99_emp_rec est déclarée comme type de données 'emp_det'. Maintenant, cette variable peut contenir la valeur qui contient les 4 champs / colonnes ci-dessus.
- Ligne de code 11: Remplir le champ 'emp_no' de 'guru99_emp_rec' avec la valeur 1001.
- Ligne de code 12: Remplir le champ 'emp_name' de 'guru99_emp_rec' avec la valeur XXX.
- Ligne de code 13: Remplir le champ 'manager' de 'guru99_emp_rec' avec la valeur 1000.
- Ligne de code 14: Remplir le champ 'salaire' de 'guru99_emp_rec' avec la valeur 10000.
- Ligne de code 15-19: Affichage de la valeur du 'guru99_emp_rec' en sortie.
Exemple 3: Type d'enregistrement au niveau du sous-programme - Accès au niveau de la ligne
Dans cet exemple, nous allons voir comment créer un type d'enregistrement au niveau du sous-programme et comment le remplir en tant que niveau ligne. Nous allons créer "emp_det" record_type au niveau du sous-programme, et nous allons utiliser le même pour remplir et afficher les données de celui-ci.
DECLARETYPE emp_det IS RECORD(EMP_NO NUMBER,EMP_NAME YARCHAR2( 150),MANAGER NUMBER,SALARY NUMBER);guru99_emp_rec emp_det;BEGININSERT INTO emp (emp_no, emp_name, salary, manager) VALUES (1002,'YYY',15000,1000);COMMIT;SELECT emp_no, emp_name, salary, manager INTO guru99_emp_rec FROM emp WHERE emp_no=1002;dbms_output.put_line (‘Employee Detail’);dbms_output.put_line (‘Employee Number: '||guru99_emp_rec.emp_no);dbms_output.put_line (‘Employee Name: '||guru99_emp_rec.emp_name);dbms_output.put_line (‘Employee Salary: '||guru99_emp_rec. salary);dbms_output.put_line (‘Employee Manager Number: '||guru99_emp_rec.manager);END;/
Explication du code:
- Ligne de code 2-8 : Le type d'enregistrement 'emp_det' est déclaré avec les colonnes emp_no, emp_name, salaire et manager de type de données NUMBER, VARCHAR2, NUMBER, NUMBER.
- Ligne de code 9: la variable guru99_emp_rec est déclarée comme type de données 'emp_det'. Maintenant, cette variable peut contenir la valeur qui contient les 4 champs / colonnes ci-dessus.
- Ligne de code 11: Remplir la table emp avec les données 1002 comme emp_no, YYY comme emp_name, 15000 comme salaire et 1000 comme numéro de manager.
- Ligne de code 12: validation de la transaction d'insertion ci-dessus.
- Ligne de code 13: Remplir la variable 'guru99_emp_rec' en tant que données de niveau ligne à partir de la requête de sélection pour le numéro d'employé 1002.
- Ligne de code 15-19: Affichage de la valeur du 'guru99_emp_rec' en sortie.
Production:
Employee DetailEmployee Number: 1002Employee Name: YYYEmployee Salary: 1000Employee Manager Number: 15000
Remarque: Le type d'enregistrement est accessible uniquement au niveau de la colonne tout en redirigeant sa valeur vers n'importe quel mode de sortie.