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

SQL Oracle Discussion :

Limitation de taille avec XMLTYPE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut Limitation de taille avec XMLTYPE
    Bonjour,

    Dans une base Oracle9.2, j'ai créé une table toute simple contenant une colonne de type XMLTYPE avec stockage dans du CLOB. Lorsque j'essaie d'insérer des données, donc sous forme XML (sys.XMLTYPE.createXml), je suis limitée à 4000 caractères ... je sais bien que c'est la limitation d'un CLOB mais comment je fais pour étendre cette limitation ? 4000 caractères pour du XML, ça fait un peu juste ...

    D'avance, Merci.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    euhh... non... un CLOB c'est pas du tout limité à 4000 caractères... c'est d'ailleurs le but.

    Si tu nous montres le code en erreur et l'erreur elle-même on devrait pouvoir t'aider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut
    Avec grand plaisir ...
    Voilà ma création de table tel que Raptor me la crache. Rien de spectaculaire là dedans.
    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
    CREATE TABLE "XWF"."ADY_MAIN_TAB" 
       (	"ID_MAIN" NUMBER NOT NULL ENABLE, 
    	"ADY_NAME" VARCHAR2(32), 
    	"ADY_INFOS" "SYS"."XMLTYPE" , 
    	 CONSTRAINT "ADY_MAIN_TAB_PK2" PRIMARY KEY ("ID_MAIN")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "XWFD"  ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "XWFD" 
     XMLTYPE COLUMN "ADY_INFOS" STORE AS CLOB (
      TABLESPACE "XWFD" DISABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      NOCACHE 
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
    Ma ligne d'insert (je te passe les détails):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into ady_main_tab (id_main, ady_name, ady_infos) values (15, 'main1', sys.XMLTYPE.CREATEXML('<INFOS>...</INFOS>'));
    et le message retourné : SQL ERROR:ORA-01704: constante de chaîne trop longue

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut
    Et au passage je tirerais les oreilles du DBA qui m'a pourtant affirmé la limitation du CLOB

  5. #5
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Avant de lui tirer l'oreille assure toi l'avoir bien compris... le CLOB n'est pas limité mais si tu passe par une requête SQL oui. Il faut que tu passe par une variable BIND en PL/SQL (ou autre langage).

    il suffit d'ailleurs simplement de chercher l'explication standart de l'erreur:
    http://ora-01704.ora-code.com/

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Petite précision par rapport à ce qu'à dit Rémi, c'est sans doute ce que tu as entre tes côtes '<INFOS>...</INFOS>' qui dépasse 4000 caractères. Or ce qui est entre côtes est considéré comme du varchar2, donc limité à 4000 caractères. Pour t'en sortir, voici une indication :
    http://www.developpez.net/forums/sho...d.php?t=227195

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

Discussions similaires

  1. Limiter la taille d'un champ texte avec VBA
    Par Lehobbit78 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/05/2018, 12h02
  2. Réponses: 5
    Dernier message: 06/01/2015, 12h57
  3. Zoom JFrame avec molette de souris (et limite de taille)
    Par YuGiOhJCJ dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 29/05/2014, 11h47
  4. Réponses: 0
    Dernier message: 30/09/2009, 00h10
  5. Réponses: 4
    Dernier message: 02/01/2008, 15h11

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