Bonjour,
je souhaiterais charger le contenu d'une table dans une collection (ou un autre type de structure si c'est plus approprié) pour pouvoir la réinjecter (avec quelques traitement au passage) dans une autre table.
J'ai suivi ce que la doc de SheikYerbouti dit à ce sujet, à savoir j'ai executer le code suivant :
J'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DECLARE TYPE TYP_TAB_AGENT IS TABLE OF RHAP_PERSONAL_DATA%Rowtype ; Tabagent TYP_TAB_AGENT ; BEGIN select * BULK COLLECT into Tabagent from RHAP_PERSONAL_DATA; For i IN Tabagent.first..Tabagent.last Loop dbms_output.put_line( Tabagent(i).matricule ) ; End loop ; END; /
La doc précise que les bout de codes sont garanties pour oracle 9i, et je suis en présence d'oracle 8i.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select * BULK COLLECT into Tabagent from RHAP_PERSONAL_DATA; * ERREUR à la ligne 2 : ORA-06550: Ligne 2, colonne 28 : PLS-00201: l'identificateur 'TABAGENT' doit être déclaré
Pour le moment j'ai le code suivant qui marche :
Cependant j'aimerai utiliser une seule et même structure de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TYPE TAB_AGENT_PRENOM IS TABLE OF RHAP_PERSONAL_DATA.NAME%type; TYPE TAB_AGENT_MAT IS TABLE OF RHAP_PERSONAL_DATA.EMPLID%type; TYPE TAB_AGENT_CIV IS TABLE OF RHAP_PERSONAL_DATA.NAME_PREFIX%type; TYPE TAB_AGENT_NOM IS TABLE OF RHAP_PERSONAL_DATA.FIRST_NAME%type; prenom TAB_AGENT_PRENOM; nom TAB_AGENT_NOM; matricule TAB_AGENT_MAT; civilite TAB_AGENT_CIV; BEGIN select EMPLID, NAME, FIRST_NAME, NAME_PREFIX BULK COLLECT into matricule, nom, prenom, civilite from RHAP_PERSONAL_DATA;
Merci de votre aide
Partager