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

PL/SQL Oracle Discussion :

Insertion CLOB dans un tableau (9i)


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut Insertion CLOB dans un tableau (9i)
    Bonjour,
    j'ai l'erreur suivante lorsque je chercue à insérer un clob dans un tableau :
    ORA-22922: nonexistent LOB value
    Aucune erreur de compilation, mais problème à l'exécution.

    Merci de votre aide

    Voici mon 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    CREATE TYPE AF_obj_row_DATAS AS OBJECT 
    (
    	AF_CDL_LIB		VARCHAR2(255),
    	AF_PAYS_LIB		VARCHAR2(255),
    	AF_COURTIERS_NOM	CLOB
    }
     
    CREATE TYPE AF_obj_table_DATAS AS TABLE OF AF_obj_row_DATAS;
     
    CREATE FUNCTION AF_GET_DATAS_REPORT ()
         RETURN AF_obj_table_DATAS AS
    	v_tab AF_obj_table_DATAS := AF_obj_table_DATAS();
    	strCDL VARCHAR2(255);
    	strPays VARCHAR2(255);
    	strCourtierListe CLOB;
     
    BEGIN
           strCDL := 'toto';
           strPays := 'titi';
           strCourtierListe := 'blablabla';
     
            v_tab.extend;
            v_tab(v_tab.last) := AF_obj_row_DATAS
            (        
    	    strCDL,
    	    strPays,
    	    strCourtierListe
            );
      RETURN v_tab;
    END;

  2. #2
    Expert confirmé
    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
    Par défaut
    Je ne suis pas certain que vous puissiez insérer un CLOB tel quel.
    je pense qu'il faut d'abord insérer un CLOB null avec empty_CLOB() et ensuite faire un update de ce CLOB ou alors l'écrire avec DBMS_LOB.WRITE().

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Merci pour la réponse.
    J'ai déjà lu des choses similaires sur le net mais je n'arrive pas à comprendre comment on utilise ces fonctions DBMS_LOB,
    et surtout tous les exemples que j'ai croisé sont basé sur de tables (SELECT, INSERT, ...) et non sur un tableau d'enregistrement comme dans mon code.

    Si tu pouvais détailler un peu plus ça serait sympa.
    Merci d'avance

  4. #4
    Expert confirmé
    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
    Par défaut
    Bizarre, votre code fonctionne sans erreur avec ma base 9i

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Connecté à :
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.5.0 - Production
     
      1  CREATE TYPE AF_obj_row_DATAS AS OBJECT
      2  (
      3   AF_CDL_LIB  VARCHAR2(255),
      4   AF_PAYS_LIB  VARCHAR2(255),
      5   AF_COURTIERS_NOM CLOB
      6* )
    SQL> /
     
    Type créé.
     
    SQL> CREATE TYPE AF_obj_table_DATAS AS TABLE OF AF_obj_row_DATAS;
      2  /
     
    Type créé.
     
      1  CREATE or replace FUNCTION AF_GET_DATAS_REPORT
      2       RETURN AF_obj_table_DATAS AS
      3   v_tab AF_obj_table_DATAS := AF_obj_table_DATAS();
      4   strCDL VARCHAR2(255);
      5   strPays VARCHAR2(255);
      6   strCourtierListe CLOB;
      7  BEGIN
      8         strCDL := 'toto';
      9         strPays := 'titi';
     10         strCourtierListe := 'blablabla';
     11          v_tab.EXTEND;
     12          v_tab(v_tab.LAST) := AF_obj_row_DATAS
     13          (
     14       strCDL,
     15       strPays,
     16       strCourtierListe
     17          );
     18    RETURN v_tab;
     19* END;
    SQL> /
     
    Fonction créée.
     
    SQL> 
     
    SQL> DECLARE
      2   v AF_obj_table_DATAS ;
      3  BEGIN
      4  v := AF_GET_DATAS_REPORT ;
      5  END;
      6  /
     
    Procédure PL/SQL terminée avec succès.
     
    SQL>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Citation Envoyé par SheikYerbouti Voir le message
    Bizarre, votre code fonctionne sans erreur avec ma base 9i
    Je suis bien content pour vous
    Je suis également sur la version 9.2.0.5.0 et ça ne fonctionne pourtant pas.


  6. #6
    Expert confirmé
    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
    Par défaut
    Effacez tout et faites un copier/coller de mon propre code. Il n'y a aucune raison. (d'ailleurs, il y avait une erreur de syntaxe dans votre code d'origine)

Discussions similaires

  1. [XL-2007] Insertion ligne dans un tableau par rapport à un fichier d'origine
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2011, 14h05
  2. Insertion automatique dans un tableau
    Par bibifoke dans le forum C#
    Réponses: 14
    Dernier message: 27/12/2010, 15h00
  3. INSERT INTO dans un tableau
    Par mihaispr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/11/2009, 13h00
  4. Insertion bouton dans un tableau
    Par sisi37 dans le forum Composants
    Réponses: 3
    Dernier message: 27/10/2008, 15h06
  5. Insertion vbTab dans un tableau
    Par ataya dans le forum VBA Word
    Réponses: 4
    Dernier message: 12/02/2008, 13h38

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