À l'aide De la boucle pour récupérer plusieurs lignes dans la procédure Oracle
Im travaillant sur la procédure stockée où j'ai besoin de récupérer un ensemble de résultats et de processus de chaque élément individuellement, puis retourner le résultat entier.(à l'aide de 3 tables différentes)
Je ne suis pas trop familier avec les bases de données, mais voici ce que j'ai pu trouver..
create or replace procedure GET_EMP_RSLT
IS
CURSOR ecursor IS select emp_id from temp_employee where 'some condition';
BEGIN
FOR empidset in ecursor
LOOP
Select * from
(select * from payroll_info where emp_id = empidset.emp_id) a
left join
(select * from benefit_info where emp_id = empidset.emp_id) b
on a.emp_id = b.emp_id
END LOOP;
END;
Sur l'exécution, j'obtiens l'erreur suivante..
an INTO clause is expected in this SELECT statement : "Select * from"
quelqu'un peut-il expliquer sur comment puis-je corriger cette erreur et d'obtenir les résultats requis?
PS. Im en utilisant Oracle 9i & CRAPAUD 9
Merci,
Tom
Vous devez vous connecter pour publier un commentaire.
Le SÉLECTIONNER à l'intérieur de la boucle doit avoir une clause INTO pour traiter les valeurs - il n'est pas clair à partir de votre code, ce que vous essayez de faire, mais je soupçonne que le imbriquée SÉLECTIONNEZ l'/JOINDRE à l'intérieur du curseur de la boucle pourrait être mieux écrit que trois jointure de table dans le curseur principal.
Ci-dessous est une solution possible, l'élaboration d'un bon nombre d'hypothèses. Comme l'a écrit, elle renvoie le résultat sous la forme d'un curseur ref contenant des données provenant de tous les 3 tableaux (il serait trivial de faire revenir un ref cursor pour chaque table, mais ce serait plus de travail pour un résultat douteux).
Cependant, sauf si vous êtes vraiment en train de faire quelque chose dans le PL/SQL que vous ne pouvez pas le faire en SQL, vous feriez beaucoup mieux de faire cela directement en SQL.
Vous avez besoin d'ajouter une clause INTO pour spécifier les variables locales à la place les données sélectionnées, par exemple.
Il y a trop de syntaxe et idéologique des erreurs dans votre code.
Par conséquent, lisez, s'il vous plaît, PL/SQL de la documentation ici, en particulier PL/SQL, section Architecture de comprendre la différence entre SQL et PL/SQL (généralement SQL - query language, SQL/PL - langage de programmation) et des articles pour votre cas:
Plein PL/référence SQL pour Oracle 9i R2 disponible à l' ce lien.
Ensemble de tous les Oracle 9i R2 documentation peut être trouvée ici.