Salut a tous, j'essaie depuis pas mal de temps de créer une fonction PL/SQL permettant de retourner en résultat l'ensemble des publications écrites à une année donnée par un auteur donné.
Les tables sont les suivantes:
-- Laboratory(LaboratoryId, LaboratoryName, LaboratoryAdress)
--
-- ResearchGroup(ResearchGroupId, ResearchGroupName, @Laboratory.LaboratoryId)
--
-- Conference(ConferenceId, ConferenceTitle, ConferencePlace, ConferenceDate)
--
-- Publication(PublicationId, PublicationTitle, @Conference.ConferenceId)
--
-- Author(AuthorId, AuhtorLastName, AuthorFirstName, -- AuthorEmail,@ResearchGroup.ResearchGroupId,
-- @Laboratory.LaboratoryId)
--
--
-- Writed(@Publication.PublicationId, @Author.AuthorId)
--
--
-- TakePart(@Conference.ConferenceId, @Author.AuthorId)
Et voila ce que j'ai fait pour le moment:
CREATE OR REPLACE FUNCTION getPublication( idAuthor Author.AuthorId%TYPE, year Conference.ConferenceDate%TYPE)
RETURN Publication.PublicationTitle%TYPE
IS
result Publication.PublicationTitle%TYPE;
BEGIN
SELECT PublicationTitle INTO result
FROM Publication, Author, Conference, Writed, TakePart
WHERE Publication.PublicationId=Writed.PublicationId
AND Writed.AuthorId=Author.AuthorId
AND Author.AuthorId=TakePart.AuthorId
AND TakePart.ConferenceId=Conference.ConferenceId
AND Author.AuthorId = idAuthor
AND Conference.ConferenceDate=year
;
RETURN result
END;
Quand j'essaie de l'executer, ca ne rend rien du tout!
Je ne sais pas si il ne faudrait pas utiliser TABLE of RECORDS ou quoi. Si quelqu'un a une idée.
Merci