[PL/SQL]

[PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 22-12-2005 à 13:39:56    

J'ai un type qui est déclaré comme suit :

Code :
  1. Create type Test as object
  2. ( Nom1 varchar(30),
  3.   Prénom1 varchar(30),
  4.   Nom2 varchar(30),
  5.   Prénom2 varchar(30),
  6.   Nom3 varchar(30),
  7.   Prénom3 varchar(30),
  8.   Nom4 varchar(30),
  9.   Prénom4 varchar(30),
  10.   Nom5 varchar(30),
  11.   Prénom5 varchar(30)
  12. )
  13. Create type Table_Test as table of Test


J'ai ensuite une procédure stocké qui utilise Table_Test.
Actuellement, je suis obligé de faire comme suit pour remplir Table_Test :

Code :
  1. Table_Test.Nom1:='A';
  2. Table_Test.Prénom1:='a';
  3. Table_Test.Nom2:='B';
  4. Table_Test.Prénom2:='b';
  5. Table_Test.Nom3:='C';
  6. Table_Test.Prénom3:='c';
  7. Table_Test.Nom4:='D';
  8. Table_Test.Prénom4:='d';
  9. Table_Test.Nom5:='E';
  10. Table_Test.Prénom5:='e';


Est-il possible et si oui comment de faire cela au sein d'une boucle du type :
for i:=1 to 5 do
begin
 Table_Test.Nom(i):='sdflkjkl';
 Table_Test.Prénom(i):='sdflkjkl';
end;
 
Merci d'avance, je débute en PL/SQL.
 

Reply

Marsh Posté le 22-12-2005 à 13:39:56   

Reply

Marsh Posté le 22-12-2005 à 14:05:02    

non, c'est impossible.
 
par contre, il me semble que tu dois pouvoir faire une syntaxe de ce type :
 

Code :
  1. select 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e' into table_test from dual;

Reply

Marsh Posté le 22-12-2005 à 14:18:54    

En fait, je fais :
Table_Test.Nom1:='A1';
Table_Test.Prénom1:='a1';
Table_Test.Nom2:='A2';
Table_Test.Prénom2:='a2';
Table_Test.Nom3:='A3';
Table_Test.Prénom3:='a3';
Table_Test.Nom4:='A4';
Table_Test.Prénom4:='a4';
Table_Test.Nom5:='A5';
Table_Test.Prénom5:='a5';  
 
Est-il possible et si oui comment de faire cela au sein d'une boucle du type :  
for i:=1 to 5 do  
begin  
 Table_Test.Nom(i):='A'+inttostr(i);  
 Table_Test.Prénom(i):='a'+inttostr(i)
end;  
 
Merci d'avance, je débute en PL/SQL.  
 

Reply

Marsh Posté le 22-12-2005 à 14:46:48    

ich bin répéting : nan, impossible
 
seul truc que tu peux faire, c'est recopier le résultat d'une requête dans ton type.
 
à la limite, tu peux générer dynamiquement ne requête qui retourne tes 10 colonnes, c'est tout ce que tu peux faire


Message édité par Arjuna le 22-12-2005 à 14:47:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed