2011-04-19 2 views
-1

J'ai pu créer un abonnement piloté par les données pour un rapport (envoi par email) où les données proviennent d'une base de données Oracle (11g) mais uniquement si j'écris directement l'instruction SELECT dans la page de définition d'abonnement. Je préfère intégrer la logique de l'instruction SELECT dans une procédure stockée dans un package, mais quand j'essaie et valide l'appel, il est toujours dit que '... la requête n'est pas valide pour la source de données'.abonnement piloté par les données utilisant la procédure stockée oracle

J'ai essayé la syntaxe PACKAGE_NAM.PROC_NAME ainsi que le préfixer avec 'exec' mais pas de chance.

La procédure stockée est définie comme: PROCEDURE nom_proc (pResult OUT refcur) ... où « refcur » est défini comme « REF CURSOR » que je pense est assez standard et compile sans erreur

Quelqu'un at-il réussi à faire ce que je suis en train d'essayer? Est-ce même possible?

+0

S'il vous plaît montrer toute la procédure stockée. – wallyk

Répondre

0

Pourriez-vous le faire avec une fonction qui retourne une table? Fondamentalement, vous feriez

select * from table(my_function(param1,param2)) 

et faire la fonction retourne le type de données correct (plus d'info ici, par exemple, http://www.akadia.com/services/ora_pipe_functions.html)

+0

Merci beaucoup. C'était un peu de travail pour définir les types nécessaires (le type d'objet et le type de collection) et ensuite peupler la table en itérant sur un curseur, mais au moins maintenant nous avons un seul morceau de code que toutes les données les abonnements peuvent appeler. –

+0

Content de vous aider - si vous avez un moment, vous pourriez vouloir marquer cela comme la réponse «Acceptée». –

0

Est-ce que quelqu'un a réussi à faire ce que j'essaye? Est-ce même possible?

Voici un article sur comment utiliser les services de reporting par rapport à un package Oracle, donc oui c'est possible et les gens le font.

une aide plus spécifique peut être donné si vous postez plus de la procédure

+0

Merci Conrad, mais mon problème n'est pas d'utiliser Oracle pour la source de données des rapports; nous le faisons largement ici sans problèmes. Le problème/question spécifique est de savoir comment utiliser une procédure stockée oravle comme source de données pour un abonnement à un rapport piloté par les données, qui est créé dans le gestionnaire de rapports, et non dans Visual Studio, BTW. –

Questions connexes