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

Langage SQL Discussion :

Problème avec BLOB


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut Problème avec BLOB
    Bonjour

    Voici mon problème
    Je dispose d'une requete toute con :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT DISTINCT fact.id_facture_post AS id_facture_post,
      cli.id_client AS crdcustid,
      fact.date_consolidation AS date_consolidation,
      fact.consommation AS consommation,
      fact.crdserial AS crdserial,
      fact.crdtype AS id_type_carte,
      fact.fichier_facture AS fichierfacture
    FROM t_postfacturation_facture fact,
      t_client cli,
      crd carte
    WHERE fact.crdserial = carte.crdserial
     AND carte.crdcustid = cli.id_client
    J'ai ce message d'erreur d'oracle sql developper que je n'arrive pas a comprendre :
    type de données incohérents : attendu -; obtenu : blob

    (c'est fichier_facture qui est de type blob, lorsque je l'enlève, la requete passe bien)

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 111
    Points : 28 451
    Points
    28 451
    Par défaut
    Tu as le droit de faire un DISTINCT sur une colonne de type BLOB ???

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut
    Non en effet ...

    En enlevant le distinct cela marche beaucoup mieux. Cependant, j'ai maintenant un autre problème. Je veux insérer une donnée issue d'un fichier pdf (il s'agit du code d'un pdf lui même "%PDF-1.3 ...")

    Le message que j'ai est maintenant le suivant

    ORA-01704 Constante de chaîne trop longue ...

    Dois je remplacer BLOB par CLOB dans mon cas et que dois-je faire pour ne plus avoir ce message d'erreur?

    Merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 912
    Points : 51 681
    Points
    51 681
    Billets dans le blog
    6
    Par défaut
    Comme son nom l'indique : BLOB (Binary Large OBject) est un objet binaire et donc ne se manipule pas de la même façon que des données typée SQL.
    En principe aucune autre opération que celle de mise à jour et SELECT n'est possible sur un BLOB. Pas de fonction, de tri de DISTINCT de LIKE ect...

    A +

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut
    En gros, mon souci est que je n'arrive pas a insérer un BLOB. Si quelqu'un a une idée

    Merci

  6. #6
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Si vous etes sous ORACLE, une doc existe a cette adresse :
    http://helyos.developpez.com/lob/
    Bon courage

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut
    Effectivement je suis sous Oracle.
    J'ai vu cette documentation, merci. On y créé un dossier dans lequel se trouvent les fichiers que l'on veut mettre dans les blobs or je veux mettre directement le code des fichiers pdf qui sont a ma disposition.

    J'ai essayé avec des clob et la procédure suivante :

    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
    create or replace procedure P_TEST(P_IDX in number,P_TXT in varchar2,P_FLAG in number) as
     
    g_clob clob;
     
    begin
     
    if P_FLAG=0 then
    insert into test values (P_IDX, empty_clob() ) returning TXT into g_clob;
    dbms_lob.write( g_clob,length(P_TXT), 1,P_TXT);
    else
    select TXT into g_clob from test where IDX=P_IDX for update;
    dbms_lob.writeappend( g_clob, length(P_TXT), P_TXT);
    end if;
     
    end;
    Mon 2ème paramètre est donc la chaine de caractère du binaire et c'est la qu'est le problème car quand j'exécute le procédure, il me demande très souvent des variables de substitution (par ex pour ñ) c'est pourquoi, blob prenant directement en compte les binaires, je suis passé au blob.

    Maintenant je voudrais juste réussir a faire un insertion dans un blob du code pdf dans une table de ma base

Discussions similaires

  1. [11g] problème avec blob et dbms_lob.fileopen(bfile)
    Par t4rik9 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/06/2015, 18h29
  2. Problème Typage avec Blob
    Par mxh77 dans le forum 4D
    Réponses: 0
    Dernier message: 07/03/2008, 16h34
  3. Problème avec un Blob Image
    Par colorid dans le forum Bases de données
    Réponses: 6
    Dernier message: 10/12/2007, 10h54
  4. Problème avec webutil et blob - WUT-121
    Par shaibi dans le forum Forms
    Réponses: 3
    Dernier message: 12/10/2006, 22h51
  5. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 17h33

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