Passage d'une variable de type table à une procédure
Bonjour,
Mon but est très simple. Je cherche à passer un paramètre de type TABLE à une procédure. Et cette table est de type RECORD. Cela est défini dans un package. En voici un extrait,
Code:
1 2 3 4
| TYPE range_type IS RECORD (start_sal emp.sal%TYPE,
end_sal emp.sal%TYPE);
TYPE range_array_type IS TABLE OF range_type; |
Ainsi, j'ai une procédure, bien entendu dans le même package, avec la définition suivante: PKG_SALAIRE.INSERT_RANGE(vi_ranges IN range_array_type). Je veux utiliser utiliser cette procédure pour insérer des valeurs. Donc je procède comme suit avec SQL Developper:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| DECLARE
vi_ranges PKG_SALAIRE.range_array_type;
BEGIN
vi_ranges := PKG_SALAIRE.range_array_type ( pkg_salaire.range_type(5500,6000),
pkg_salaire.range_type(6001,6500),
pkg_salaire.range_type(6501,7000));
PKG_SALAIRE.INSERT_RANGE (
vi_ranges => vi_ranges);
END; |
J'ai une erreur PLS-00222 : No function with name 'range_type' exists in this scope. Et lorsque j'enlève pkg_salaire.range_type, j'ai l'erreur PLS-00306 : wrong number or type of arguments in call to range_array_type !
J'avoue que je m'y connais peu en manipulation de collection !
Merci de votre réponse ;)