Blob pl/sql

Azerty -  
 Utilisateur anonyme -
Bonjour,

J'ai un problème, quand j'export mes fichiers stocké en Blob dans la base de donnée ils sont illisibles, j'ai le bon nom, la bonne extension (exemple test.pdf) mais je ne peut pas les ouvrir ou alors ils contiennent des caractères bizarres.

Comment faire pour connaitre l'encodage et pouvoir les décoder correctement a l'extraction?

Merci

3 réponses

Utilisateur anonyme
 
Bonjour,

A titre d'information :

Avec certains languages et dépendament aussi du type
de la BD (MySQL, SQL Serveur ou Oracle), il y a
segmentation du Blob.

Personnellement, j'en ai fait l'expérience avec Oracle
et un language similaire à VB6, les Blobs étaient segmentés
au moment de la sauvegarde, il était alors impératif
de les récupérer avec une clause [Order By] de l'indice
de segmentation.

Ce pourrait être votre cas !

Cdt

Lupin
1
Azerty
 
Bonjour,

Tout d'abord merci pour votre réponse.

Pour extraire les fichiers j'utilise la commande DBMS_LOB.read avec un buffer de 32767 (je développe en PL/SQL) du coup les segments sont bien repris dans l'ordre.

Cdt
0
Utilisateur anonyme
 
re:

Oui selon ma doc, ton buffer est à la bonne taille. Mais comme
je t'ai dit, sous SQLD, l'instruction de blobage segmente aussi en 32K.

Il est clair que je n'ai pas utiliser l'instruction du PL/SQL, mais
le problème semble assez similaire. Je recommande la doc
de Oracle que tu trouveras ici :

https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/toc.htm

Le document est téléchargeable sous format PDF, et on y fournit
des exemples explicites sur l'utilisation de la commande [DBMS_LOB].

Suggestion, commence par blober un fichier plus petit que 32K,
et relit le ensuite. Si celui-ci est bien lu, c'est qu'il y a segmentation
pour les fichiers plus grand que 32K et la lecture des segments ne
se fait pas dans le bon ordre, l'utilisation de l'instruction PL/SQL
[DBMS_LOB.Read] ne signifie pas nécessairement que celle-ci
ordonne les segments lors de la lecture.

Je vais faire aussi un peu de lecture si j'ai le temps, j'apprends depuis
près d'un an le PL/SQL et le sujet m'intéresse, si je trouve quelque
chose, je te reviens :-).

Cdt

Lupin
0
Utilisateur anonyme
 
re:

J'oubliais, sous quelle version d'Oracle est-tu ?

Cdt

Lupin
0