Bonjour,

Alors voila mon problème. Je voudrai inserer un (plusieurs) BLOB dans une table. Donc, malin, je suis allé voir ici histoire de trouver comment faire. Par contre, quand j'execute ce code, trouvé sur la page en question :
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
drop table lob_table;
 
create table lob_table (key_value number(11), b_col blob);
insert into lob_table (key_value, b_col) values (12, EMPTY_BLOB());
 
describe lob_table;
 
DECLARE
  lob_loc BLOB;
  buffer RAW;
  amt BINARY_INTEGER := 32767;
  pos INTEGER := 2147483647;
  i INTEGER;
BEGIN
  SELECT b_col INTO lob_loc
  FROM lob_table
  WHERE key_value = 12 FOR UPDATE;
 
  FOR i IN 1..3 LOOP
    dbms_lob.write (lob_loc, amt, pos, buffer);
    -- ...
    pos := pos + amt;
  END LOOP;
 
END;
Et bien ca plante, genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 Table créée.
 1 ligne créée.
 
 KEY_VALUE       NUMBER(11)
 B_COL              BLOB
 
  buffer RAW;
         *
ERREUR à la ligne 3 :
ORA-06550: Ligne 3, colonne 10 :
PLS-00215: Contraintes de longueur de chaîne doivent être incluses ds zone (1 .. 32767)
Je pensais que le problème venais du fait que ma table est vide, alors j'ai fait un enregistrement avec un BLOB vide, mais rien n'y fait. Alors, euh... Ou est le problème ?

Merci d'avance !