Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2007, 18h13   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Par défaut [SQL] Erreur requete

Bonjour j'ai l'erreur suivante
qui se produit lorsque je réalise un cube de données mon problème est que j'entre 3 paramètres liés aux paramètres du report dans ma requete sql.
si mets des ? dans ma requete pour utiliser les parametres cela ne marche pas. si je met des valeurs en dur la requête marche et je n'ai aucune erreur.

quelqu'un peut il m'aider.
Merci

Citation:


The following items have errors:


TabularCube Customer Cube:
- Cannot get the result set metadata.
SQL statement does not return a ResultSet object.
SQL error #1: ORA-00911: invalid character


Cannot get the result set metadata.
SQL statement does not return a ResultSet object.
SQL error #1: ORA-00911: invalid character


Cannot get the result set metadata.SQL statement does not return a ResultSet object.SQL error #1: ORA-00911: invalid characterCannot get the result set metadata.SQL statement does not return a ResultSet object.SQL error #1: ORA-00911: invalid character ( 1 time(s) )
detail : org.eclipse.birt.data.engine.core.DataException: Cannot get the result set metadata.SQL statement does not return a ResultSet object.SQL error #1: ORA-00911: invalid characterCannot get the result set metadata.SQL statement does not return a ResultSet object.SQL error #1: ORA-00911: invalid character at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.defineCube(DataRequestSessionImpl.java:493) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:124) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:94) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:50) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:146) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:71) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(Unknown Source) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(Unknown Source) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(Unknown Source) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(Unknown Source) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(Unknown Source) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 10h43   #2
Futur Membre du Club
 
Homme Lotfi BELLILI
Développeur .NET
Inscription : septembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Lotfi BELLILI
Localisation : Canada

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : septembre 2006
Messages : 33
Points : 16
Points : 16
Bonjour
je pense que ton problème vient de la non définition de tes paramètres,
tu t' pas trompé en déclarant les types de tes paramètres,?
car il sufiit pas de mettre ? dans ta requête pour que sa marche.
iol faut donner un type au paramétre qui correpond au type déclaré dans ta BD.
et de préférence lui donner une valeur par défaut.
et pour faire simple, peut tu nous donner la partie de ta requete ou t'a déclaré tes paramètres?
lotfilol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 12h05   #3
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
ben mes paramètres sont bien définis ! Enfin je pense.
j'ai trois paramètres un no_cde , no_rel, code_coll, qui sont de type any tous les 3. Ils sont liés aux parametres du rapport de même nom mais en majuscule.
Les 3 paramètres du rapport sont passés en String. En base les 2 premiers sont des integers. le troisième est une String. J'ai déja fais d'autres requetes moins compliqué mais avec les même type pour les paramètres et cela marchait très bien.
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 12h18   #4
Futur Membre du Club
 
Homme Lotfi BELLILI
Développeur .NET
Inscription : septembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Lotfi BELLILI
Localisation : Canada

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : septembre 2006
Messages : 33
Points : 16
Points : 16
et bien si j'ai bien compris,
t' deux premier paramètres sont de type integer dans la Base de donnée, et tu les a mis ou s'a c'est mis par defaut en type string avec BIRT
Citation:
Envoyé par ruby_robber Voir le message
ben mes paramètres sont bien définis ! Enfin je pense.
j'ai trois paramètres un no_cde , no_rel, code_coll, qui sont de type any tous les 3. Ils sont liés aux parametres du rapport de même nom mais en majuscule.
Les 3 paramètres du rapport sont passés en String. En base les 2 premiers sont des integers. le troisième est une String. J'ai déja fais d'autres requetes moins compliqué mais avec les même type pour les paramètres et cela marchait très bien.
lotfilol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 12h21   #5
Futur Membre du Club
 
Homme Lotfi BELLILI
Développeur .NET
Inscription : septembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Lotfi BELLILI
Localisation : Canada

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : septembre 2006
Messages : 33
Points : 16
Points : 16
et bien si j'ai bien compris,
t' deux premier paramètres sont de type integer dans la Base de donnée, et tu les a mis ou s'a c'est mis par defaut en type string avec BIRT ?
ben dans tous les cas, il faut que tes paramétres correponds au types déclarés dans ta base de données,
donc il faut que tes deux premier parametres soit de tye integer, et le troisième de type string dans tes definitiosn sous BIRT

Citation:
Envoyé par ruby_robber Voir le message
ben mes paramètres sont bien définis ! Enfin je pense.
j'ai trois paramètres un no_cde , no_rel, code_coll, qui sont de type any tous les 3. Ils sont liés aux parametres du rapport de même nom mais en majuscule.
Les 3 paramètres du rapport sont passés en String. En base les 2 premiers sont des integers. le troisième est une String. J'ai déja fais d'autres requetes moins compliqué mais avec les même type pour les paramètres et cela marchait très bien.
lotfilol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 14h09   #6
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Je viens de tester j'ai enlevé les 2 derniers attributs et les ai remis en dur dans la requete. j'ai gardé mon premier attribut qui est passé en string je l'ai changé et passé en integer dans mon rapport birt puis le seul paramètre de ma requete est aussi passé en Integer. mais rien n'y fait toujours la même erreur

voici ma requete

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
select
    les_taille_co.no_cde,
    les_taille_co.no_rel,
    les_taille_co.code_coll,
    type_colis.code_unt,
    les_taille_co.cv cv,
    les_taille_co.no_ordre_taille,
    les_taille_co.code_taille,
    les_taille_co.no_ordre_coloris,
    les_taille_co.code_coloris,
    nvl(v.qte,0) qte

from 
    -- grille taille_coloris d'une commande
    (select 
      no_cde, 
      no_rel, 
      code_coll, 
      cv, 
      no_ordre_coloris,
      code_coloris, 
      no_ordre_taille,
      code_taille 

      from 

            lct_vw_cv ) les_taille_co,
   -- quantites par cv dans un type colis
   (select
    lcd.no_cde no_cde , 
    lcd.no_rel no_rel,
    lcd.code_coll code_coll,
    lcd.code_unt code_unt,
    lcc.cv cv,
    nvl(lcc.qte,0) qte
from
    lct_commande_compo  lcc,
    lct_commande_detail lcd
where
    lcd.no_cde=lcc.no_cde and
    lcd.no_rel=lcc.no_rel and
    lcd.code_coll=lcc.code_coll and
    lcd.code_unt=lcc.code_unt )  v,
    -- type colis 00 pour la commande
    (select no_cde, no_rel, code_coll, code_unt, type_unt from lct_commande_detail ) type_colis
where
    les_taille_co.no_cde = ? and
    les_taille_co.no_rel= ? and
    les_taille_co.code_coll= ? and
    les_taille_co.no_cde=v.no_cde (+) and
    les_taille_co.no_rel=v.no_rel (+) and
    les_taille_co.code_coll=v.code_coll (+) and
    les_taille_co.cv=v.cv (+) and
    les_taille_co.no_cde=type_colis.no_cde and
    les_taille_co.no_rel=type_colis.no_rel and
    les_taille_co.code_coll=type_colis.code_coll and
    type_colis.type_unt='T' and
    type_colis.code_unt like '%00' and
    type_colis.code_unt=v.code_unt
la partie en rouge fonctionne quand les valeurs sont en dur uniqument sinon j'ai une erreur oracle 00911 invalid character
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 14h48   #7
Futur Membre du Club
 
Homme Lotfi BELLILI
Développeur .NET
Inscription : septembre 2006
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Lotfi BELLILI
Localisation : Canada

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : septembre 2006
Messages : 33
Points : 16
Points : 16
ok,
donc pour etre sure que le pb vient de tes paramètres, tu peux utilser l'editeur 'Edit Data set' de Birt (c'est l'editeur ou ta ecrit ta requete).
à partir de cette editeur, tu va sur l'onglet 'Parameters' et tu visualise tes déclarations de parametres,
ensuite, tu utilse 'Edit parameters ' pour voir si les types déclarés de tes parametres sont bons,
esuite tu donne tes valeurs par défaut que t'a mis en dur, dans dans le champ 'Default value' de 'Edit parameters'.
ensuite tu va sur l'onglet 'Preview' et tu visualise tes résultats :
si t' un pb de requete, il va te le signaler,
sinon, si t'a des valeurs résultas, donc sa marche, et dans ce cas, le pb vient de ta conception BIRT et non ta requete SQL, et si c'est le cas, tu la refait.

je ne sais pas si sa repond a ton pb se que j'ai dit, mais voilà

Citation:
Envoyé par ruby_robber Voir le message
Je viens de tester j'ai enlevé les 2 derniers attributs et les ai remis en dur dans la requete. j'ai gardé mon premier attribut qui est passé en string je l'ai changé et passé en integer dans mon rapport birt puis le seul paramètre de ma requete est aussi passé en Integer. mais rien n'y fait toujours la même erreur

voici ma requete

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
select
    les_taille_co.no_cde,
    les_taille_co.no_rel,
    les_taille_co.code_coll,
    type_colis.code_unt,
    les_taille_co.cv cv,
    les_taille_co.no_ordre_taille,
    les_taille_co.code_taille,
    les_taille_co.no_ordre_coloris,
    les_taille_co.code_coloris,
    nvl(v.qte,0) qte

from 
    -- grille taille_coloris d'une commande
    (select 
      no_cde, 
      no_rel, 
      code_coll, 
      cv, 
      no_ordre_coloris,
      code_coloris, 
      no_ordre_taille,
      code_taille 

      from 

            lct_vw_cv ) les_taille_co,
   -- quantites par cv dans un type colis
   (select
    lcd.no_cde no_cde , 
    lcd.no_rel no_rel,
    lcd.code_coll code_coll,
    lcd.code_unt code_unt,
    lcc.cv cv,
    nvl(lcc.qte,0) qte
from
    lct_commande_compo  lcc,
    lct_commande_detail lcd
where
    lcd.no_cde=lcc.no_cde and
    lcd.no_rel=lcc.no_rel and
    lcd.code_coll=lcc.code_coll and
    lcd.code_unt=lcc.code_unt )  v,
    -- type colis 00 pour la commande
    (select no_cde, no_rel, code_coll, code_unt, type_unt from lct_commande_detail ) type_colis
where
    les_taille_co.no_cde = ? and
    les_taille_co.no_rel= ? and
    les_taille_co.code_coll= ? and
    les_taille_co.no_cde=v.no_cde (+) and
    les_taille_co.no_rel=v.no_rel (+) and
    les_taille_co.code_coll=v.code_coll (+) and
    les_taille_co.cv=v.cv (+) and
    les_taille_co.no_cde=type_colis.no_cde and
    les_taille_co.no_rel=type_colis.no_rel and
    les_taille_co.code_coll=type_colis.code_coll and
    type_colis.type_unt='T' and
    type_colis.code_unt like '%00' and
    type_colis.code_unt=v.code_unt

la partie en rouge fonctionne quand les valeurs sont en dur uniqument sinon j'ai une erreur oracle 00911 invalid character
lotfilol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 15h04   #8
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
En passant les paramètre uniquement dans la requete sql une autre erreur est apparue vu qu'il prend les valeur par défaut de la requete.
Mais la je pige pas le truc!
Citation:
Data engine operation failed due to an unexpected exception.
Error evaluating Javascript expression. Script engine error: reference erre: "Hiver" is not defined. Sciprted source: source , line : 0 , text: HIVER
reason a birt exception occured
je pige pas j'ai pas du tout de JS dans mon modèle et hiver n'est pas une variable mais une valeur que prend mon 3 ième paramètre
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 10h37   #9
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
En faisant quelques recherches j'ai remarqué qu'avec une ancienne version de birt et une ancienne version de mon pilote jdbc ainsi qu'une ancienne version de java ma requete marche en passant les paramètres. donc il ne me reste plus qu' a trouver ce qui ne fonctionne pas bien. => nouvelle version de java => de birt ou =>pilote ou =>nouvelle vesion eclipse. pour ceux qui veulent parier. c'est le moment
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 16h29   #10
Futur Membre du Club
 
Inscription : mai 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 66
Points : 15
Points : 15
Ben j'ai trouvé une solution changer entièrement la structure de ma requete et cela foncttionne sous les 2 versions ne me demandez pas pourquoi!
ruby_robber est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h00.


 
 
 
 
Partenaires

Hébergement Web