Samedi 7 mai 2011 6 07 /05 /Mai /2011 12:25

 

Oracle PL/SQL Variables %TYPE et %ROWTYPE.

Comment extraire une donnée d'une table avec l'attribut %TYPE ou %ROWTYPE PL-SQL ?
Toute donnée extraite d'une table est réceptionnée dans une variable.
%TYPE et %ROWTYPE sont utilisés pour définir des variables en PL / SQL tel qu'ils sont définis dans la base de données. Si le type de données ou de précision d'une colonne change, le programme choisit automatiquement la nouvelle définition de la base de données sans avoir à faire aucune modification de code.

Avantages variable %TYPE et %ROWTYPE

● assurent l'indépendance des données.
● réduit les coûts de maintenance.
● permet aux programmes de s'adapter aux changements de la base de données.

 

Structure BLOC PL/SQL avec variable %TYPE.

 
SET SERVEROUTPUT ON
DECLARE
    v_ename scott.emp.ename%type;
    v_job   scott.emp.job%type;
BEGIN
    SELECT ename, job
      INTO v_ename, v_job
      FROM scott.emp
     WHERE empno = 7839;
     dbms_output.put_line('Name = '||v_ename || '   Job = ' || v_job); 
END; /

Dans la partie DECLARE, nous déclarons les deux variables v_ename et v_job référencées à une colonne de table de la base et qui receptionnerons les données. Ici colonne ENAME et JOB de la table EMP du schéma SCOTT.
L'attribut %TYPE spécifie le type de la colonne de la table.

Exécution PL/SQL avec variable %TYPE dans SQLPlus.

 
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2      v_ename scott.emp.ename%type;
  3      v_job   scott.emp.job%type;
  4  BEGIN
  5      SELECT ename, job
  6        INTO v_ename, v_job
  7        FROM scott.emp
  8       WHERE empno = 7839;
  9       dbms_output.put_line('Name = '||v_ename || '   Job = ' || v_job);
 10  END;
 11  /
Name = KING   Job = PRESIDENT

PL/SQL procedure successfully completed.

 

Structure BLOC PL/SQL avec variable %ROWTYPE.

 
SET SERVEROUTPUT ON
DECLARE
    v_emp   scott.emp%rowtype;
BEGIN
    SELECT ename, job
      INTO v_emp.ename, v_emp.job
      FROM scott.emp
     WHERE empno = 7839;
     dbms_output.put_line('Name = '||v_emp.ename || '   Job = ' || v_emp.job); 
END; /

Dans la partie DECLARE, nous déclarons la variable v_emp qui fait référence à un enregistrement (ligne) de table de la base. Ici toutes les colonnes de la table EMP du schéma SCOTT.
L'attribut %ROWTYPE spécifie la structure d'une ligne de table.

Exécution PL/SQL avec variable %ROWTYPE dans SQLPlus.

 
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2      v_emp   scott.emp%rowtype;
  3  BEGIN
  4      SELECT ename, job
  5        INTO v_emp.ename, v_emp.job
  6        FROM scott.emp
  7       WHERE empno = 7839;
  8       dbms_output.put_line('Name = '||v_emp.ename || '   Job = ' || v_emp.job);
  9  END;
 10  /
Name = KING   Job = PRESIDENT

PL/SQL procedure successfully completed.
Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Oracle PL-SQL Structure d'un BLOC
• Oracle PL-SQL SELECT INTO
Par Daniel Roesch - Publié dans : ORACLE PLSQL
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés