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 :

Stocker le contenu des fichier volumineux avec CLOB


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut Stocker le contenu des fichier volumineux avec CLOB
    bonjour,
    je vais stocker le contenu des fichiers volumineux dans ma base oracle!
    j'ai utlisé le type CLOB pour cela mais il ne peux pas sauvegarder meme le contenu d'un fichier de taille 50 ko pourtant il peut normalement aller jusqu'à 4Go!
    est-ce qu'il y a une configuration que je dois suivre pour cela!
    j'ai essayé d'aller dans les proprietés du champs dans ma table: stockage des objets de type LOB et modifier Nombre maximal en 'sans limite' mais j'ai l'erreur suivante :"ORA-25150: modification ( ALTERING) des paramètres d'ensemble de blocs contigus non autorisée" et en plus je sais pas si c'est ça le problème ou pas!
    merci de m'aider!

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Bonjour,

    Votre question est incompréhensible.
    Quelles instructions utilisez-vous pour charger vos colonnes CLOB ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  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
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    oerr ora 25150
    25150, 00000, "ALTERING of extent parameters not permitted"
    // *Cause: An attempt was made to alter the extent parameters for a segment
    //         in a tablespace with autoallocate or uniform extent allocation
    //         policy.
    // *Action: Remove the appropriate extent parameters from the command.
    Il n'y a pas de clause MINEXTENTS à définir pour ton type de tablespace.

    quelle est l'erreur lorsque tu veux insérer un gros CLOB?

    Note il n'y a pas de "taille" de clob, le clob grandit au besoin (jusqu'à 4G)

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    la faute que je reçois lors de l'insertion : "ORA-01704 : constante de chaine trop longue

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Utilises tu le driver jdbc thin d'oracle ? Si oui, essayes de l'updater ou mieux (mais si c possible pour toi), prend le driver OCI. J'ai des probleme de blob et j'ai vu a plusieurs reprises des developpeurs qui ont rencontrés un bug pour les clob > 4Ko avec ce driver. Par exemple dans le lien ci dessous (en anglais) :

    http://www.mail-archive.com/ojb-user.../msg03231.html

  6. #6
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    attention, une chaine style 'abcdef...' est toujours limitée à 4000 charactères. C'est une limite du "littéral", pas de la table.

    Impossible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into (c) values ('12345678910...100...1000...10000...100000...1000000');
    tu dois trouver une astuce, par exemple en PL/SQL tu peux lire ton fichier avec utl_file et utiliser DBMS_LOB pour créer ton LOB.

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    tu peux m'aider encore plus car je ne connais pas bien PL/SQL

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    bon j'ai arrivé à inserer le contenu de mon fichier dans un champ CLOB.
    mnt je veux reconstruire mon fichier à partir de la base.
    comment faire pour inserer le contenu du clob dans un fichier texte?
    merci d'avanace

  9. #9
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    avec PL/SQL, tu peux employer UTL_FILE

    en sqplus, tu peux employer spool et select * from t, avec les bons settings (ex: set pages 0 long 1000000000 longc 1000000000 emb on newp none lin 32000 trims on)

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    merci bien pour votre aide

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    je m'excuse si je te dérange mais j'ai encore une question:
    pour inser les données dans le fichier j'ai utilisé la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UTL_FILE.PUT_LINE(fp,v_buf,TRUE);
    cette fonction ajoute un retour à la ligne aprés chaque insertion dans le fichier. y a t il une solution pour ne pas ajouter le retour à la ligne?
    merci bien

  12. #12
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    oui, UTL_FILE.PUT au lieu de UTL_FILE.PUT_LINE

    mais la longueur totale de la ligne est limitée

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    oui j'ai aussi utlisé UTL_FILE.PUT mais elle ne permet pas d'enregistrer tout le contenu de mon Clob dans le fichier!

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    alors qqun peut m'aider!
    y a t il une solution pour enregistrer tout le contenu de mon Clob sans avoir des retours à la ligne ds le fichier?

  15. #15
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Les lignes de ton fichier d'origine font plus de 32767 caractères ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    oui il sont supérieures à la taille d'un varchar (32767)

  17. #17
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Dans ce cas tu ne pourras pas t'en sortir car utl_file ne permet d'écrire que par paquet de 32767 caractères.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 89
    Points : 47
    Points
    47
    Par défaut
    je savais ça mais le probleme est utl_put_line met un retour à la ligne et utl_put ne copie pas tout le clob !
    donc il n' ya pas aucune solution pour ne pas avoir un retour à la ligne?
    j'ai essayé de lire le clob avec php ou n'importe quel autre langage mais j'arrive pas!

  19. #19
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par wided_instm
    je savais ça mais le probleme est utl_put_line met un retour à la ligne et utl_put ne copie pas tout le clob !
    donc il n' ya pas aucune solution pour ne pas avoir un retour à la ligne?
    j'ai essayé de lire le clob avec php ou n'importe quel autre langage mais j'arrive pas!
    Je ne peux pas t'en dire plus que ma dernière réponse : que ce soit put ou put_line tu es limité à 32767 caractères par ligne. Après tu auras un saut de ligne.

    Pour ce qui est de la lecture du CLOB en php, fais une recherche sur le forum, il me semble avoir lu des posts traitant du sujet.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

Discussions similaires

  1. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  2. Stocker les nom des fichiers d'un type d'un repértoire
    Par Bloodscalp dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/09/2006, 14h26
  3. Lire des fichier mpeg avec Real player
    Par xtendance dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 07/09/2006, 12h17
  4. importer des fichiers mp3 avec sql server uniquement
    Par cool dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/04/2006, 13h21
  5. [Excel] Générer des fichiers Excel avec PHP et des données SQL
    Par MaTHieU_ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/03/2006, 15h46

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