IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

Comment importer une procédure stockée sous Oracle comme une source


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut Comment importer une procédure stockée sous Oracle comme une source
    Bonjour à tous,

    Je suis débutante en BIRT, je suis en train de faire un projet concernant la restitution avec BIRT, en fait ce rapport doit avoir comme source, une procédure stockée en ORACLE (client nous demande), moi je sais pas comment importer une procédure , si vous avez déjà des expériences sur ça, je vous remercie de vos aides

    Cordialement
    Ying


    /*Procédure stockée sous oracle*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    create procedure aa ( A1 out NUMBER,
    B1 out NUMBER) is
     
     
    BEGIN 
    SELECT COUNT (*) into A1 from COMMANDE ;
    select count (*) into B1 from auths; 
    END aa;
    Avec une erreur
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut,

    Il faut copier le driver JDBC de la version d'oracle dans les plugins du Birt designer, créer une source de données basée dessus, et choisir l'option "procédure stockée" lors de la création du dataset. Plus d'informations sur le document word à télécharger à cette adresse.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par donino Voir le message
    Salut,

    Il faut copier le driver JDBC de la version d'oracle dans les plugins du Birt designer, créer une source de données basée dessus, et choisir l'option "procédure stockée" lors de la création du dataset. Plus d'informations sur le document word à télécharger à cette adresse.
    Bonjour

    Merci bcp pour votre réponse
    Mais j'arrive pas rédiger le query pour la procédure
    /*Procédure stockée sous Orace*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    create procedure aa ( A1 out NUMBER,
    B1 out NUMBER) is
     
     
    BEGIN 
    SELECT COUNT (*) into A1 from COMMANDE ;
    select count (*) into B1 from auths; 
    END aa;
    Avec l'erreur comme une pièce jointe
    Images attachées Images attachées  

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Je suppose qu'il faut que tu définisses les 2 paramètres A1 et B1 en output dans la section "parameters" du dataset. Tu peux trouver plus d'infos sur les paramètres en output sur ce document PDF

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par donino Voir le message
    Je suppose qu'il faut que tu définisses les 2 paramètres A1 et B1 en output dans la section "parameters" du dataset. Tu peux trouver plus d'infos sur les paramètres en output sur ce document PDF
    Ca marche pas non plus

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Tu as mis quoi comme query? Peut être as tu oublié pas les '?' pour représenter les paramètres:

    Mets bien les types de paramètre en output en Decimal ou Float. Il n'y a pas de raison pour que ça ne fontionne pas

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par donino Voir le message
    Tu as mis quoi comme query? Peut être as tu oublié pas les '?' pour représenter les paramètres:

    Mets bien les types de paramètre en output en Decimal ou Float. Il n'y a pas de raison pour que ça ne fontionne pas




    En fait

    Je mets la procédure comme

    create or replace
    procedure CC ( P_A1 out number, P_B1 out number ) AS

    BEGIN
    SELECT COUNT(*) INTO P_A1 FROM commande ;
    SELECT count(*) INTO P_B1 FROM auths;
    dbms_output.put_line('N1 : ' || to_char(P_A1));
    dbms_output.put_line('N2 : ' || to_char(P_B1));
    END cc;

    call cc();




    et dans birt, je peux seulement ajouter les paramètres en INPUT (vois la photo jointe)
    Images attachées Images attachées  

  8. #8
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Ok, je pense qu'il y a une petite confusion: le code de la procédure stockée que tu as mis doit être exécuté sous Oracle pour créer la procédure, pas sous BIRT.

    Une fois créée, et que tu peux bien la visualiser dans l'explorateur d'items d'un dataset Birt sous les "STORED PROCEDURES" elle peut être invoquée.

    Si tu l'appelles CC comme dans cet exemple (attention aux majuscules - minuscules), dans le dataset ->section query, il suffit de l'appeler avec un call:

    Les deux '?' représentent les 2 paramètres en sortie de l'exemple, qu'il faut ensuite déclarer dans la section "parameters", donc en output dans ton cas.

    Si tu ne peux saisir que des paramètres en "input", c'est que le type du dataset n'a pas été déclaré comme procédure stockée. Cela se définit à la création du dataset, en même temps que la sélection de la source de données: il y a une option "Data set type" qui permet de choisir soit "Requête SQL" soit "Procédure stockée".

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par donino Voir le message
    Ok, je pense qu'il y a une petite confusion: le code de la procédure stockée que tu as mis doit être exécuté sous Oracle pour créer la procédure, pas sous BIRT.

    Une fois créée, et que tu peux bien la visualiser dans l'explorateur d'items d'un dataset Birt sous les "STORED PROCEDURES" elle peut être invoquée.

    Si tu l'appelles CC comme dans cet exemple (attention aux majuscules - minuscules), dans le dataset ->section query, il suffit de l'appeler avec un call:

    Les deux '?' représentent les 2 paramètres en sortie de l'exemple, qu'il faut ensuite déclarer dans la section "parameters", donc en output dans ton cas.

    Si tu ne peux saisir que des paramètres en "input", c'est que le type du dataset n'a pas été déclaré comme procédure stockée. Cela se définit à la création du dataset, en même temps que la sélection de la source de données: il y a une option "Data set type" qui permet de choisir soit "Requête SQL" soit "Procédure stockée".





    Bonjour

    Merci bcp
    Il faut choisir le type du dataset!!!!! J'ai jamais conçu cette erreur au début
    En fait maintenant, pour utiliser cette procédure, je trouve que les paramètres sont dans <Preview Output Parameters> mais pas dans <Preview Results>, donc je peux pas utiliser le résultat de cette procédure dans le reporter, c'est bizarre.
    Je suis désolée que j'ai toujours bcp de questions

    Ying

  10. #10
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Oui c'est normal qu'il n'y ait rien dans "preview results" puisque cette procédure stockée ne retourne que des paramètres. Si la procédure contient quelquechose comme alors il y aura le résultat dans "preview results".

    Pour accéder à tes paramètres en output, il faut créer un champs de données dans le rapport (ie drag-drop d'un élément "data"), puis dans l'onglet "binding" le lier au dataset. Dans l'expression de cet élément data, tu auras alors accès aux valeurs des 2 paramètres output.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par donino Voir le message
    Oui c'est normal qu'il n'y ait rien dans "preview results" puisque cette procédure stockée ne retourne que des paramètres. Si la procédure contient quelquechose comme alors il y aura le résultat dans "preview results".

    Pour accéder à tes paramètres en output, il faut créer un champs de données dans le rapport (ie drag-drop d'un élément "data"), puis dans l'onglet "binding" le lier au dataset. Dans l'expression de cet élément data, tu auras alors accès aux valeurs des 2 paramètres output.


    Ca roule très bien !!!!!!!!!!!!!
    Merci
    En fait j'ai un autre souci, quand je veux créer un paramètre pour créer une liste (Comme invite dans BO), toujours une erreur


    exception.error ( 1 time(s) )
    detail : org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details:
    Failed to prepare the query execution for the data set: Procédure_Données
    Cannot set the string value (1) to parameter 2.
    org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot set preparedStatement parameter string value.
    SQL error #1:Index de colonne non valide
    ;
    java.sql.SQLException: Index de colonne non valide (Element ID:150)
    Images attachées Images attachées  

  12. #12
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Salut, ça a l'air d'être un nouveau problème, peux tu mettre celui ci à "résolu" et créer un nouveau thread.

    Profites en pour préciser je n'ai pas compris: tu souhaites passer un code produit en paramètre, récupérer une liste d'éléments et utiliser cette liste comme invite d'un autre paramètre c'est ça? Ou complètement autre chose? Tu peux aussi ajouter le code de ta procédure stockée ce sera plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une procédure stockée sous MySQL avec phpmyadmin
    Par Jordan59 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 17/08/2011, 14h08
  2. Réponses: 13
    Dernier message: 08/03/2007, 14h53
  3. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18
  4. Appel d'une procédure stockée sous VB 6
    Par Polux000 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/01/2006, 09h21
  5. Réponses: 2
    Dernier message: 05/12/2005, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo