Comment retourner un type de collection de plsql procédure stockée
J'ai le dessous de procédure stockée PL/SQL:
CREATE OR REPLACE PROCEDURE sample_procedure AS
DECLARE
TYPE list_of_names_t
IS TABLE OF emp.emp_index%TYPE;
ignoreIndexes LIST_OF_NAMES_T := List_of_names_t();
BEGIN
-- Logic here which fills the values in the collection ignoreIndexes
END;
Quand à se prévaloir de cette procédure stockée à partir de l'extérieur, comme ci-dessous:
SET SERVEROUTPUT ON
EXEC sample_procedure
-- Line YY
@ La ligne AA, je veux récupérer les enregistrements de la table emp où l'indice n'est pas là dans le ignoreindexes
collection qui a été préparé dans la procédure stockée.
1) Comment faire pour retourner la table imbriquée ignoreindexes
qui a été créé dans une procédure stockée sur le monde extérieur afin que je puisse utiliser l'index dans cette table
Merci d'Avance
Vous devez déclarer le type à l'extérieur de votre programme et de faire une fonction au lieu d'une procédure, ou d'un paramètre de la procédure.
Je suis en supposant que vous n'avez pas vraiment une
Je suis en supposant que vous n'avez pas vraiment une
DECLARE
dans votre sample_procedure
ou, au moins, qu'il n'est pas là où vous l'avez mis. Vous obtiendrez une erreur de syntaxe si vous avez eu une DECLARE
immédiatement à la suite de la AS
.OriginalL'auteur javanoob | 2013-01-09
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ils n'auraient besoin d'être déclarée en dehors de la procédure en vue de la définition de type pour être visible de code en dehors de la procédure. Vous pouvez déclarer le type dans SQL
ou vous pouvez les déclarer dans le PL/SQL
Votre procédure serait alors nécessaire d'utiliser et de retourner le type SQL
ou le PL/SQL de type
Bien sûr, si le but de votre code est de retour d'une collection, il serait plus logique d'écrire une fonction qu'une procédure
Lorsque vous appelez la procédure, vous devez faire quelque chose comme
ou
OriginalL'auteur Justin Cave