Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2011, 15h20   #1
Nouveau Membre du Club
 
Inscription : mai 2007
Messages : 88
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 88
Points : 34
Points : 34
Par défaut question sur lecture de BLOB

Bonjour,
le code suivant ne fonctionne pas et je ne vois pas pourquoi...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
DECLARE
  myBlob BLOB:=EMPTY_BLOB();
  myBuffer VARCHAR2(32767);
  l_buffer_size INTEGER := 32767;
  l_offset INTEGER := 1;
 
  CURSOR selCurs IS 
    SELECT BLOBVAL
    FROM BLOBTABLE
    WHERE BLOBVAL IS NOT NULL;
 
BEGIN
  OPEN selCurs;
    LOOP 
    FETCH selCurs INTO myBlob;
    EXIT WHEN selCurs%NOTFOUND;
      DBMS_LOB.OPEN(myBlob, DBMS_LOB.LOB_READONLY);
      DBMS_LOB.READ(myBlob, l_buffer_size, l_offset, myBuffer);
      DBMS_LOB.CLOSE(myBlob);
    END LOOP;
  CLOSE selCurs;
END;

l'erreur: (sur DBMS_LOB.OPEN)
Code :
1
2
3
4
5
6
7
8
 
Rapport d'erreur :
ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: invalid LOB locator specified: ORA-22275
ORA-06512: à "SYS.DBMS_LOB", ligne 925
ORA-06512: à ligne 19
06502. 00000 -  "PL/SQL: numeric or value error%s"
*Cause:    
*Action:
merci à quiconque pourra m'aider... la doc n'a pas pu, elle...
temoanatini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 17h53   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 547
Points : 7 547
Et comme ça ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE
  myBlob BLOB:=EMPTY_BLOB();
  myBuffer VARCHAR2(32767);
  l_buffer_size INTEGER := 32767;
  l_offset INTEGER := 1;
 
  CURSOR selCurs IS 
    SELECT blobval
    FROM blobtable
    WHERE blobval IS NOT NULL;
  recCurs selCurs%ROWTYPE;
BEGIN
  OPEN selCurs;
    LOOP 
    FETCH selCurs INTO recCurs;
    EXIT WHEN selCurs%NOTFOUND;
    myBlob := recCurs.blobval
      DBMS_LOB.OPEN(myBlob, DBMS_LOB.LOB_READONLY);
      DBMS_LOB.READ(myBlob, l_buffer_size, l_offset, myBuffer);
      DBMS_LOB.CLOSE(myBlob);
    END LOOP;
  CLOSE selCurs;
END;
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h10.


 
 
 
 
Partenaires

Hébergement Web