2009-06-11 7 views
1

Dans la récupération de données à partir d'une base de données Oracle qui contient des champs BLOB (les fichiers .doc de bureau etc), dois-je faire quelque chose de particulier pour l'envoyer via des services Web?Webservice: champ BLOB

Il est envoyé comme une chaîne et je suis en train de convertir la chaîne en un tableau d'octets et d'écrire dans un fichier pour recréer, côté client, le fichier .doc.

Quelle est la bonne approche?

+0

Utilisez-vous WCF ou SOAP traditionnel? –

+0

SOAP traditionnel – pistacchio

Répondre

2

Il n'est pas clair à la question, mais il semble que vous avez les données de la base de données, et maintenant besoin de l'exposer sur un service web. En termes de SOAP, etc, cela peut être aussi simple que de retourner un byte[], ou d'exposer un byte[] sur un DTO. Si le champ est grand, vous pouvez envisager une compression MTOM (WSE3) et/ou Web.

Alors: comment Oracle exposer le blob à vous? Si ce n'est pas un byte[], est-ce peut-être quelque chose comme classe LINQ Binary, qui permet d'accéder aux données encapsulées (ToArray() dans ce cas). S'il expose un string, je devrais deviner qu'il est codé en base 64; vous pourriez essayer d'exécuter Convert.FromBase64String.

1

Vous devez base64 encoder le flux d'octets.