Bonjour,
Après moultes recherches sous Google, la FAQ et les sources sur le site, je me décide à ouvrir un post concernant le chargement d'une image dans un champ LONG RAW sous ORACLE 8i.
Le format LONG RAW est Deprecated, mais il nous est imposé par l'outil que nous utilisons.
L'objectif est de charger une image JPG dans un champ LONG RAW à partir d'un fichier dans un répertoire donné.
J'ai bien essayé via UTL_FILE, UTL_RAW et aussi avec la méthode des LOB, mais un RETURNING ___ to ___ n'est pas disponible en Oracle 8i.
Avec le code suivant, j'obtiens l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 -6502-ORA-06502: PL/SQL: numeric or value error: hex to raw conversion errorDescription de la table
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 declare file_data_ LONG RAW; file_ UTL_FILE.file_type; file_lng_ NUMBER(9); begin file_ := UTL_FILE.fopen('/d1/ifs/index/ifdt3ifs/sigma1/data/','Base_fond_ess.jpg','rb',32767); UTL_FILE.get_line(file_, file_data_); file_lng_ := length(file_data_); INSERT INTO binary_object_data_block (blob_id, seq, data, length, application_data) VALUES (10,1,utl_raw.cast_to_raw(file_data_),file_lng_,7); COMMIT; UTL_FILE.fclose(file_); EXCEPTION WHEN OTHERS THEN dbms_output.put_line(sqlcode || '-' || sqlerrm); end;
Un petit coup de pouce, je nage un peu (brasse coulée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SQL> desc binary_object_data_block; Nom NULL ? Type ----------------------------------------- -------- BLOB_ID NOT NULL NUMBER SEQ NOT NULL NUMBER DATA LONG RAW LENGTH NOT NULL NUMBER APPLICATION_DATA VARCHAR2(2000) SQL>)
Partager