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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
SQL>
SQL> DROP TABLE Planning;
Table dropped.
SQL>
SQL> CREATE TABLE Planning
2 (
3 Competition INTEGER,
4 Annee INTEGER,
5 Course VARCHAR2(10),
6 Libelle VARCHAR2(100),
7 Distance INTEGER,
8 Pause CHAR
9 );
Table created.
SQL>
SQL> INSERT INTO Planning VALUES (3, 2006, 'C3', 'Course mars 2006', 12, 'O');
1 row created.
SQL> COMMIT;
Commit complete.
SQL>
SQL> CREATE OR REPLACE PACKAGE GestionPlanning
2 AS
3 TYPE TablePlanning IS TABLE OF Planning%ROWTYPE INDEX BY BINARY_INTEGER;
4 FUNCTION LISTER(
5 VCompetition IN Planning.Competition%TYPE,
6 VAnnee IN Planning.Annee%TYPE) RETURN TablePlanning;
7 END;
8 /
Package created.
SQL> show errors
No errors.
SQL>
SQL> CREATE OR REPLACE PACKAGE BODY GestionPlanning
2 AS
3 FUNCTION LISTER(
4 VCompetition IN Planning.Competition%TYPE,
5 VAnnee IN Planning.Annee%TYPE) RETURN TablePlanning
6 IS
7 vtt TablePlanning;
8 rp Planning%ROWTYPE;
9 BEGIN
10 rp.competition := 3;
11 rp.annee := 2006;
12 vtt(1) := rp;
13 return vtt;
14 END;
15 END;
16 /
Package body created.
SQL> show errors
No errors.
SQL>
SQL> set serveroutput on
SQL>
SQL> DECLARE
2 -- TYPE TablePlanning IS TABLE OF Planning%ROWTYPE INDEX BY BINARY_INTEGER;
3 VPlanning GestionPlanning.TablePlanning;
4 BEGIN
5 VPlanning:=GESTIONPLANNING.LISTER (3, 2006);
6 FOR i IN 1..VPlanning.COUNT LOOP
7 DBMS_output.put_line('Pour i=' || i || ':');
8 DBMS_output.put_line(VPlanning(i).Competition || ' ' || VPlanning(i).Annee || ' ' ||
9 VPlanning(i).Course || ' ' || VPlanning(i).Libelle || ' ' ||
10 VPlanning(i).Distance || ' ' ||VPlanning(i).Pause);
11 END LOOP;
12 END;
13 /
Pour i=1:
3 2006
PL/SQL procedure successfully completed.
SQL>
SQL> exit |
Partager