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

Administration Oracle Discussion :

Nclob Limite a 4000 octet


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 87
    Par défaut Nclob Limite a 4000 octet
    Bonjour
    Sur un base Oracle 92010 sous W2003 qd je creer une table avec colonne NCLOB la taille est automatiquement initialise à 4000. je ne sai pas quoiq faire pour pouvoir stocker 2Go comme c'est indique dans la doc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table TEST1
    ( id          number, 
     TESTCLOB    NCLOB )
    parameters de la bases
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NLS_CHARACTERSET                 AL32UTF8
    NLS_NCHAR_CHARACTERSET       AL16UTF16
    Merci d'avance de votr aide.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Voici un exemple qui crée un NCLOB de 1 Mo:

    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
    28
    29
    30
    31
    32
    33
    34
    SQL> set serveroutput on
    SQL> 
    SQL> drop table t;
     
    Table supprimee.
     
    SQL> 
    SQL> create table t(x int, y nclob);
     
    Table creee.
     
    SQL> 
    SQL> declare
      2  n nclob;
      3  l number;
      4  begin
      5  dbms_lob.createtemporary(n, true, dbms_lob.session);
      6  for i in 1..1024
      7  loop
      8   dbms_lob.write(n, 1024, ((i-1)*1024) + 1, rpad('*', 1024, '*'));
      9  end loop;
     10  insert into t values(1, n);
     11  commit;
     12  select dbms_lob.getlength(t.y) into l from t where x = 1;
     13  dbms_output.put_line('taille du LOB en Mo: ' || l/(1024*1024));
     14  end;
     15  /
    taille du LOB en Mo: 1
     
    Procedure PL/SQL terminee avec succes.
     
    SQL> show errors
    Pas d'erreur.
    SQL>
    Voir aussi les exemples du Application Developer's Guide - Large Objects

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par exempleinfo Voir le message
    colonne NCLOB la taille est automatiquement initialise à 4000
    comment arrives-tu à cette conclusion? il n'y a pas d'initialisation de taille. Par défaut la taille est de zero (null), non?

    Cependant il y a une limite dans SQL qu'un literal ne peut avoir plus de 4000 characters.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select length(lpad(to_clob('x'),1000000) ) from dual;
    LENGTH(LPAD(TO_CLOB('X'),1000000))
    ----------------------------------
                               1000000
     
    select '123456789... ... ...5000' from dual;
     
    Error at line 1
    ORA-01704: string literal too long

Discussions similaires

  1. [2.x] Assert/image : taille limitée à 2097152 octets ?
    Par vinsse2001 dans le forum Symfony
    Réponses: 1
    Dernier message: 26/03/2013, 15h54
  2. Résultat limité à 4095 octets
    Par Breizhim dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/02/2011, 03h10
  3. limite de 4000 octets (CLOB/BLOB!)
    Par roms712 dans le forum JDBC
    Réponses: 1
    Dernier message: 24/05/2007, 17h04
  4. Existe-t'il un type tenant sur 2 octets ?
    Par benj63 dans le forum C++Builder
    Réponses: 13
    Dernier message: 20/06/2002, 17h03
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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