Bonjour,
J'ai un souci que je n'arrive pas à compiler :
J'ai un package avec une procédure avec des valeurs par défaut
J'ai besoin de rajouter un paramètre qui contiendra une liste de (clé,valeur)
J'aimerais déclarer ce nouveau paramètre en DEFAULT NULL, ce qui ne compile pas.
Sans DEFAULT value, c'est bon, mais comment rajouter un DEFAULT pour mettre un Type NULL ? En utilisant un Type basé ?
Ma solution de contournement a été de dupliquer la procédure, mais ça me ferait dupliquer toutes les autres procédures pour lesquelles je dois rajouter ce paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE PACKAGE WMC AS TYPE Rec_Headers IS RECORD (CLE VARCHAR2(256), VALEUR VARCHAR2(1024)); TYPE Headers IS TABLE OF Rec_Headers INDEX BY BINARY_INTEGER; PROCEDURE P_GET (p_url IN VARCHAR2, p_login IN VARCHAR2 DEFAULT NULL, p_headers IN Headers DEFAULT ???); END;
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
16
17
18
19
20
21 CREATE PACKAGE WMC AS TYPE Rec_Headers IS RECORD (CLE VARCHAR2(256), VALEUR VARCHAR2(1024)); TYPE Headers IS TABLE OF Rec_Headers INDEX BY BINARY_INTEGER; PROCEDURE P_GET (p_url IN VARCHAR2, p_login IN VARCHAR2 DEFAULT NULL); PROCEDURE P_GET (p_url IN VARCHAR2, p_login IN VARCHAR2 DEFAULT NULL, p_headers IN Headers); END; PACKAGE BODY WMC IS PROCEDURE P_GET (p_url IN VARCHAR2, p_login IN VARCHAR2 DEFAULT NULL, p_headers IN Headers) IS BEGIN .. END; PROCEDURE P_GET (p_url IN VARCHAR2, p_login IN VARCHAR2 DEFAULT NULL) IS v_headers Headers; BEGIN P_GET(p_url => p_url, p_login => p_login, p_headers => v_headers); END;
Partager