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

JDBC Java Discussion :

limite de 4000 octets (CLOB/BLOB!)


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut limite de 4000 octets (CLOB/BLOB!)
    Bonsoir,

    je suis en train de travailler sur une application qui permet d'insérer des BLOBs et des CLOBs dans une BDD Oracle 10g.

    Mon code fonctionne sur les fichiers inférieures à 4000 octets (j'ai vérifié pour les CLOB, mais ça semble être identique pour les BLOB)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT length(monclob) from matable;
    me renvoie null pour les fichiers de plus de 4000 octets que j'ai insérés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    File file = new File("resume.txt");    
    InputStream fis = new FileInputStream(file);   
    System.out.println( file.length() );
    PreparedStatement pstmt = conn.prepareStatement("update OUVRAGE set descriptif = ? where isbn='" + dlg.isbn + "'");
    pstmt.setAsciiStream(1, fis, (int) file.length());
    pstmt.executeUpdate();
    pstmt.close();
    Il faut préciser que file.length() me renvoie des chiffres corrects.

    Donc on dirait bien que le CLOB/BLOB est vide.
    Voilà c'est la première fois que je suis confronté à ce genre de problèmes.

    J'ai recherché sur ce forum, j'ai vu des problèmes quasi identiques sans vraiment de réponses. Sur google, pareil, j'ai essayé ce qu'il y a dans la FAQ sur le site d'Oracle, en vain.

    J'arrive souvent là dessus : "ENABLE STORAGE IN ROW", ça viendrait du serveur à l'autre bout?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    J'avais eu le meme probleme il y a quelques temps.
    Nous l'avions résolu en utilisant des classes spécifiques LobHandler pour Oracle du framework spring

    Voilà un exemple de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // creation de la connexion
    DelegatingConnection connection = (DelegatingConnection) this.source.getConnection();
    // recup de la connexion oracle
    Connection oracleConn = connection.getInnermostDelegate();
     
    // Insertion du document en initialisant le LOB locator
    PreparedStatement pstmt = oracleConn.prepareStatement("INSERT INTO MA_TABLE (CLE,TITLE,CONTENT) VALUES (?,?,?)");
    pstmt.setInt(1, cle);
    pstmt.setInt(2, title);
    LobHandler lobHandler = new OracleLobHandler();
    lobHandler.getLobCreator().setBlobAsBinaryStream(pstmt, 3, is, length);
    pstmt.executeUpdate();
    pstmt.close();
    Il existe également des méthodes setClobAs.... pour les clob.

    J'espère que ça t'aidera.

Discussions similaires

  1. [CR XI] Limite BLOB / CLOB
    Par joffreyb dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 09/09/2010, 09h20
  2. Nclob Limite a 4000 octet
    Par exempleinfo dans le forum Administration
    Réponses: 2
    Dernier message: 10/12/2007, 10h21
  3. [Hibernate] Blob Clob et BFile sous Oracle
    Par srvremi dans le forum Hibernate
    Réponses: 5
    Dernier message: 27/04/2006, 14h15
  4. [CLOB/BLOB] Quelles sont leurs utilités ?
    Par maximus001ma dans le forum DB2
    Réponses: 8
    Dernier message: 01/02/2006, 15h30
  5. [DB2] conversion BLOB -> CLOB
    Par Fabien Celaia dans le forum DB2
    Réponses: 12
    Dernier message: 12/07/2004, 12h09

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