comment faire pour ajouter des valeurs à un oracle de type
comment puis-je ajouter (insert), 3 ou 4 valeurs différentes pour un oracle type, puis plus tard, ouvre un curseur.
Par exemple (pseudo):
insert into mytype select 1 from dual;
insert into mytype select 3 from dual;
insert into mytype select 5 from dual;
open cursor_1 for select * from table(mytype);
Est-ce possible de le faire en pl/sql?
Je sais que c'est trivial et peuvent être combinés dans une même requête, mais mon besoin est d'avoir différentes requêtes et de les garder en ajoutant les résultats de mytype.
Vous devez vous connecter pour publier un commentaire.
En supposant que vous voulez dire que vous avez un custom de type SQL (vraisemblablement une table imbriquée type), et une PL/SQL variable de ce type: je ne crois pas que vous pouvez
INSERT
en elle, et je ne pense pas que vous pouvezSELECT
en elle de façon à ajouter à la collection.Vous pouvez sélectionner dans une variable scalaire, puis l'ajouter à la collection de la procédure.
La manipulation de PL/SQL collections est beaucoup plus facile puisque 10g, qui nous a donné de l'ENSEMBLE des opérateurs, nous pouvons utiliser avec eux.
Comme vous le savez, pour employer la TABLE() fonction signifie que nous devons utiliser un type SQL...
Le bloc suivant remplit une collection avec des chiffres, et qu'il l'utilise dans une boucle FOR. Il exécute ensuite une autre requête pour remplir une deuxième collection. La deuxième collection est ajouté à la première collection à l'aide de la MULTISET de l'UNION de la syntaxe. Contrairement à l'UNION de SQL opérateur, cette mise en œuvre n'a pas crible les doublons (on peut utiliser MULTISET UNION DISTINCTES pour ça). Le code se termine par une boucle dans la première collection de nouveau, afin de prouver qu'il contient à la fois des ensembles de nombres.