#1 Thu 11 September 2008 09:35
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Requête SQL
Bonjour à tous,
Je lance une requête depuis 3 jours, mais du fait de l'heure de clôture de la base, impossible d'obtenir le résultat. Plus exactement, je peux obtenir le résultat si je ne lui demande pas de spooler dans un fichier.
Voici la requête :
set colsep ";";
set pages 0;
Set Tab OFF;
set newpage NONE;
set recsep off;
set feedback off;
set LINESIZE 250;
spool C:serelle.log;
Select op.GID ||';'|| op."Denomm" ||';'||'51'||substr(parc.IDENT,1,3) ||';'||
ltrim(substr(parc.IDENT,7,2),'0') ||';'|| ltrim(substr(parc.IDENT,9,4),'0') ||';'|| parc."propriet" ||';'||
parc."nat_pro" ||';'||parc."parc_par"||';'||parc."date_acq"||';'||SDO_GEOM.SDO_AREA (parc.GEOMETRY,0.005) / 1000000||';'
FROM
A_REIMS.U_OPFONC op ,
A_REIMS.PCI_PARC parc
WHERE
(SDO_RELATE(op.GEOMETRY,parc.GEOMETRY,'mask=contains querytype=WINDOW')='TRUE'
OR SDO_RELATE(op.GEOMETRY,parc.GEOMETRY,'mask=covers querytype=WINDOW')='TRUE'
OR SDO_RELATE(op.GEOMETRY,parc.GEOMETRY,'mask=overlapbdyintersect querytype=WINDOW')='TRUE'
OR SDO_RELATE(op.GEOMETRY,parc.GEOMETRY,'mask=equal querytype=WINDOW')='TRUE')
and round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(parc.GEOMETRY,op.GEOMETRY, 0.005),0.005)/(SDO_GEOM.SDO_AREA(parc.GEOMETRY,0.005)))*100,3) 0
and (round((SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(parc.GEOMETRY,op.GEOMETRY, 0.005),0.005)/(SDO_GEOM.SDO_AREA(parc.GEOMETRY,0.005)))*100,3) =100 OR
(SDO_GEOM.SDO_AREA(SDO_GEOM.SDO_INTERSECTION(parc.GEOMETRY,op.GEOMETRY, 0.005),0.005))/1000000 > ((SDO_GEOM.SDO_LENGTH(SDO_GEOM.SDO_INTERSECTION(parc.GEOMETRY,op.GEOMETRY,0.005),0.1)*0.4)/2000)) AND op.GID IN (SELECT A_REIMS.U_OPFONC.GID FROM A_REIMS.U_OPFONC WHERE A_REIMS.U_OPFONC.GID'139')
spool off;
et voici ma question :
est-il possible de faire un traitement FME qui me permettrait d'obtenir une feuille xls en sortie avec ces enregistrements sélectionnés ?
D'avance merci, 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 Thu 11 September 2008 18:02
Re: Requête SQL
Si vous enlevez toutes les commandes non sql (set, spool...) il ne devrait pas y avoir de problème en utilisant SQLExecutor mais il vous faut donner un nom aux attributs concaténés et spécifier les mêmes noms à la fin de l'assistant de SQLExecutor.
Hors ligne