1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
SQL> create table TableClient (nom varchar2(16), prenom varchar2(16), adresse varchar2(16),
2 codepostal varchar2(16), ville varchar2(16));
Table créée.
SQL> insert into TableClient values ('MACHIN','TOTO','rue truc','44000','NANTES');
1 ligne créée.
SQL> insert into TableClient values ('bidule','titi','bd du truc','33000','Bordeaux');
1 ligne créée.
SQL> commit;
Validation effectuée.
SQL> create package pkgType is
2 TYPE Type_Test is ref cursor;
3 end pkgType;
4 /
Package créé.
SQL> create Procedure Test (F_Test out pkgType.Type_Test,
2 pNom IN TableClient.Nom%type)
3 IS
4 Str_chaine varchar2(1000);
5 Str_table varchar2(20);
6 begin
7 Str_table:='TableClient';
8 Str_chaine :=' Select nom, prenom, adresse, codepostal, ville '||
9 ' From ' || Str_table ||
10 ' Where nom = :pNom';
11 Open F_Test for str_chaine using pNom;
12 end;
13 /
Procédure créée.
SQL> var CC REFCURSOR;
SQL> BEGIN
2 Test (:CC,'MACHIN');
3 END;
4 /
Procédure PL/SQL terminée avec succès.
SQL> print CC
NOM PRENOM ADRESSE CODEPOSTAL
---------------- ---------------- ---------------- ----------------
VILLE
----------------
MACHIN TOTO rue truc 44000
NANTES
SQL> |
Partager