banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Tue 25 January 2011 14:03

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

sqlexecutor : message d'erreur ?

Aloha
Je lis ma table parcelle mais je souhaite exécuter parallèlement une requête afin de l'enrichir de donner. Voici la requête :

Code:

SELECT MJ2_PARCEL.CCOCOM || '000' || MJ2_PARCEL.CCOSEC || MJ2_PARCEL.DNUPLA
          AS ID_PARCELLE,
       S1.BATIMENT,
       COUNT (S1."N° invariant") AS "Nb Lots de la copropriété"
  FROM    PLATINI.MJ2_PARCEL MJ2_PARCEL
       INNER JOIN
          (SELECT MJ2_BATI.INVAR AS "N° invariant",
                  MJ2_DESCPEV.DNUPEV AS "N° PEV",
                  MJ2_PROPRIO.DNUPRO AS "N° de propriétaire",
                  MJ2_LOCAL.JDATAT AS "Année de mutation",
                  MJ2_LOCAL.JANNAT AS "Année de construction",
                  MJ2_LOCAL.CCONLC AS "Nature du local",
                  MJ2_DESCPEV.DCAPEC AS "Catégorie",
                  MJ2_DESCPEV.DCETLC AS "Coeff d'entretien",
                  MJ2_HABPRINC.DNBPPR AS "Nb piéces principales",
                  MJ2_HABPRINC.DNBPDC AS "Nb piéces",
                  MJ2_HABPRINC.DSUPDC AS "surface des piéces (hors dépe)",
                  MJ2_BATI.DNUBAT AS batiment,
                  MJ2_BATI.D_ESC AS escalier,
                  MJ2_BATI.DNIV AS niveau,
                  MJ2_BATI.DPOR AS porte,
                  MJ2_BATI.DVOILIB AS voie,
                     MJ2_BATI.CCOCOM
                  || '000'
                  || MJ2_BATI.CCOSEC
                  || MJ2_BATI.DNUPLA
                     AS CODE_PARC,
                  CASE MJ2_DESCPEV.CCTHP
                     WHEN 'L' THEN 'Loué'
                     WHEN 'P' THEN 'PO'
                     WHEN 'V' THEN 'Vacant'
                     ELSE CCTHP
                  END
                     AS OCCUPATION,
                  MJ2_LOCAL.GPDL
             FROM    (   (   (   PLATINI.MJ2_LOCAL MJ2_LOCAL
                              INNER JOIN
                                 PLATINI.MJ2_BATI MJ2_BATI
                              ON (MJ2_LOCAL.INVAR = MJ2_BATI.INVAR))
                          INNER JOIN
                             PLATINI.MJ2_PROPRIO MJ2_PROPRIO
                          ON (MJ2_PROPRIO.CCOCOM = MJ2_BATI.CCOCOM)
                             AND (MJ2_LOCAL.DNUPRO = MJ2_PROPRIO.DNUPRO))
                      INNER JOIN
                         PLATINI.MJ2_DESCPEV MJ2_DESCPEV
                      ON (MJ2_DESCPEV.INVAR = MJ2_BATI.INVAR))
                  INNER JOIN
                     PLATINI.MJ2_HABPRINC MJ2_HABPRINC
                  ON (MJ2_DESCPEV.INVAR = MJ2_HABPRINC.INVAR)
                     AND (MJ2_DESCPEV.DNUPEV = MJ2_HABPRINC.DNUPEV)
            WHERE ( ( (MJ2_DESCPEV.DNUPEV = '001'
                       AND MJ2_DESCPEV.CCOAFF = 'H')
                     AND MJ2_PROPRIO.GTOPER = '1')
                   AND MJ2_LOCAL.GPDL <> '0')) S1
       ON (   MJ2_PARCEL.CCOCOM
           || '000'
           || MJ2_PARCEL.CCOSEC
           || MJ2_PARCEL.DNUPLA = S1.CODE_PARC)
GROUP BY S1.BATIMENT,
         MJ2_PARCEL.CCOCOM || '000' || MJ2_PARCEL.CCOSEC || MJ2_PARCEL.DNUPLA

J'ai bien ajouté les noms des attributs en sortie, mais j'ai un message d'erreur :

Executing SQL: 'SELECT MJ2_PARCEL.CCOCOM || '000' || MJ2_PARCEL.CCOSEC || MJ2_PARCEL.DNUPLA           AS ID_PARCELLE,        S1.BATIMENT,        COUNT (S1.N°invariant) AS NbLotsdelacopropriété   FROM    PLATINI.MJ2_PARCEL [...]S1        ON (   MJ2_PARCEL.CCOCOM            || '000'            || MJ2_PARCEL.CCOSEC            || MJ2_PARCEL.DNUPLA = S1.CODE_PARC) GROUP BY S1.BATIMENT,          MJ2_PARCEL.CCOCOM || '000' || MJ2_PARCEL.CCOSEC || MJ2_PARCEL.DNUPLA': `ORA-01756: une chaîne entre apostrophes ne se termine pas correctement
'. (serverType=`ORACLE8I', serverName=`sige', userName=`PLATINI', password=`***', dbname=`')'


Et là je ne vois pas puisque la requête est exécuter parfaitement par sqlplus...
Quelqu'un a-t'il une idée ?

D'avance merci,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#2 Tue 25 January 2011 19:03

Pookie
Participant occasionnel
Date d'inscription: 15 May 2006
Messages: 25

Re: sqlexecutor : message d'erreur ?

Bonjour,
Vu le message avez vous essayé de mettre des quotes sur cette partie la
                  MJ2_BATI.DNUBAT AS batiment,
                  MJ2_BATI.D_ESC AS escalier,
                  MJ2_BATI.DNIV AS niveau,
                  MJ2_BATI.DPOR AS porte,
                  MJ2_BATI.DVOILIB AS voie,


Sinon la requête est correcte, les paramètres de connections sont ils bon ?

Hors ligne

 

#3 Wed 26 January 2011 13:29

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: sqlexecutor : message d'erreur ?

Dont acte. Comme expliqué ici, avec les bases Oracle, toujours prévoir le \" pour les quotes.
Problème déjà rencontré lors du passage de requête sql en paramètre des objets en input,...
Damned.


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#4 Wed 26 January 2011 14:28

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: sqlexecutor : message d'erreur ?

Euh c'est normal les perf' réellement déplorables de ce transformer ? (20 sec pour exécuter la requête dans sqlplus, et obtenir les 36000 enregistrements, 5 min pour parcourir les 500 premiers objets dans SQLExecutor )
Je pense donc passer par le SQL dans ma connexion Oracle (définition des Inputs) mais comment faire entrer mes 60 lignes de requêtes dans la fenêtre de définition de ma clause SELECT de ma classe en entrée ?
Il ne me prend que la première ligne !


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#5 Wed 26 January 2011 20:47

jaykayone
Participant actif
Date d'inscription: 15 Feb 2007
Messages: 95

Re: sqlexecutor : message d'erreur ?

je pense que ce serait mieux de créer une view avec votre requête et d'attaquer ensuite la vue ..

Hors ligne

 

#6 Thu 08 December 2011 14:52

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: sqlexecutor : message d'erreur ?

Aloha
Pour infos, j'avais suivi votre conseil à l'époque.
Cordialement,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

Pied de page des forums

Powered by FluxBB