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

Oracle Discussion :

Limitation de 2000 car dans une ligne retournée par sql


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut Limitation de 2000 car dans une ligne retournée par sql
    Bonjour,
    Je ne sais pas si ma question concerne oracle ou sqlplus (j'ai fait un post similaire pour sqlplus).
    J'exécute sous sqlplus un script sql qui produit en sortie un fichier XML. J'utilise pour cela la fonctionnalité XML d'oracle. Voici mon script sql simplifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    set pagesize 0
    set line 2000
    set head off
    set echo off
    set feedback off
    set verify off
    set termout off
    SET HEAD OFF
    SET LONG 2000 
    
    SPOOL &1
    SELECT
    XMLELEMENT("gml:featureMember",
    XMLELEMENT("SECTOR",
       XMLELEMENT("GDO_GEOMETRY", 
             XMLELEMENT("gml:Polygon", 
                XMLELEMENT("gml:outerBoundaryIs", 
                   XMLELEMENT("gml:LinearRing",     
                      XMLELEMENT("gml:coordinates",ops$ope.gmlpos.GetCoordStringFromVol(se_vol.AIRSPACE_ENV_NAME,se_vol.VOLUME_NAME)
                      )
                   )
                )
             )
         )   
       )) FROM r_se_vol se_vol, CTL_AREA se, VOLUME vo;
    SPOOL OFF
    exit;
    La directive gml:coordinates fait appel à une procédure stockée (en vert), celle ci renvoie une chaine de caractères (au maximum de 4000 car.). La ligne XML correspondante (dans le fichier SPOOL) est tronquée à 2000 car !!!
    Même si je fais , la troncature est toujours à 2000. D"ou vient cette limitation ? Est t'elle connue ? Comment faire ?

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour
    C'est cela qui limite la taille du XML lu.
    Cordialement,
    Franck.

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    oui, j'avais oublié le sens de cette directive, mais je l'ai aussi augmenté à 3000, j'ai toujours la troncature à 2000.
    Cordialement

  4. #4
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    J'ai trouvé en effet sur d'autres forums que la directive LONG définit la longueur max retournée. Je constate qu'en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set long 20
    set long 50
    set long 500
    l'output est bien tronqué au maximum de la directive LONG, mais si je l'augmente à 3000 ou 20000 j'ai toujours une troncature précise à 2000.
    Cordialement

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est peut-être lié à votre version, quelles sont les versions d'Oracle et de SQL*Plus ?

    Sinon un coup de google m'envoie sur ces paramètres, je n'ai aucune idée s'ils répondent à vos besoin, enfin ça vaut le coup d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SET ECHO OFF
    SET NEWPAGE 0
    SET SPACE 0
    SET LONG 1999999
    SET PAGESIZE 0
    SET FEEDBACK OFF
    SET HEADING OFF
    SET TRIMSPOOL ON
    SET TERMOUT OFF

  6. #6
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Voici mes versions d'oracle/outils :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    > sqlplus ....
     
    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jan 27 11:57:47 2012
     
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    SQL> select * from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for Solaris: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
     
    SQL>
    Sinon j'ai essayé les paramètres proposés : pas de changement.
    Cordialement


    Citation Envoyé par Waldar Voir le message
    C'est peut-être lié à votre version, quelles sont les versions d'Oracle et de SQL*Plus ?

    Sinon un coup de google m'envoie sur ces paramètres, je n'ai aucune idée s'ils répondent à vos besoin, enfin ça vaut le coup d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SET ECHO OFF
    SET NEWPAGE 0
    SET SPACE 0
    SET LONG 1999999
    SET PAGESIZE 0
    SET FEEDBACK OFF
    SET HEADING OFF
    SET TRIMSPOOL ON
    SET TERMOUT OFF

  7. #7
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Dans le cas ou j'ai SET LONG 3000, je n'ai pas de troncature en fait mais une fin de ligne au 2000ème caractère comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <gml:featureMember><SECTOR><GDO_GEOMETRY><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates> 5.1302777778,46.325 5.1333333333,5.15,46.3833333333</gml:coordinates></gml:LinearRing></gml:oute     
    rBoundaryIs></gml:Polygon></GDO_GEOMETRY></SECTOR></gml:featureMember>
    Ce qui fait qu'après le parser XML voit une erreur de syntaxe. Je rappelle que j'ai bien SET LINE 3000, il doit y avoir alors une autre limitation ...
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/07/2009, 08h33
  2. insérer une image dans une base paradox par sql
    Par maamar1979 dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/06/2009, 14h15
  3. Réponses: 2
    Dernier message: 17/04/2008, 11h16
  4. Réponses: 10
    Dernier message: 09/11/2005, 15h08
  5. [vb excel]Tester une valeur dans une ligne
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/09/2005, 13h58

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