Oracle data provider et long Raw > 32 K, comment lire partie par partie et le sa [Résolu]

magloui 8 Messages postés vendredi 2 avril 2004Date d'inscription 3 octobre 2007 Dernière intervention - 12 oct. 2005 à 17:30 - Dernière réponse : magloui 8 Messages postés vendredi 2 avril 2004Date d'inscription 3 octobre 2007 Dernière intervention
- 13 oct. 2005 à 09:30
Bonjour,

Je doit extraire d'une base oracle des docs, sauvegarder en type LONG RAW, si elle font moin de 32K, il n'y a pas de problème, mais pour les autres rien a faire je n' y arrive pas.

Jutilise le ODP 9.0.2.4, j'utlise le VB.net

D'avance merci pour votre aide.

David

Dim ORADataAdapt As New Oracle.DataAccess.Client.OracleDataAdapter(sql, ORAConn)
'Add Result of Sql To DATATABLE
ORADataAdapt.Fill(ResultBlob)
'Variable Lenght of DataTable
Dim c = ResultBlob.Columns.Count
Dim r = ResultBlob.Rows.Count


'Extract All Blob Of This Table
For i = 0 To (r - 1)
'Take Number of BLOB_KEY
Execute the Sql
Dim cmd As Oracle.DataAccess.Client.OracleCommand = New Oracle.DataAccess.Client.OracleCommand(sql2, ORAConn)
cmd.InitialLONGFetchSize = cmd.InitialLONGFetchSize.MaxValue


'Folder to save Blob
Dim savedImageName As String = "C:\\ImageFromDb.TXT"
'Take Value of Blob File
Dim Reader As Oracle.DataAccess.Client.OracleDataReader = cmd.ExecuteReader()
' Read first record
Reader.Read()
Dim blobbyte = Reader.GetOracleBinary(0).Value
'Execute decompression of Blob and save on Disk
DecompressBlob(blobbyte, savedImageName, False, "")
'Close the copy of Blob File
Reader.Close()
Next i
' Clean up connection
If ORAConn.State = ConnectionState.Open Then
ORAConn.Close()
' Dispose connection
ORAConn.Dispose()
End If
Afficher la suite 

1 réponse

Meilleure réponse
magloui 8 Messages postés vendredi 2 avril 2004Date d'inscription 3 octobre 2007 Dernière intervention - 13 oct. 2005 à 09:30
3
Merci
Bonjour,

C'est bon j'ai trouver, il suffit d'ajouter le rowid dans le sql.

ex :
select blob, rowid from blob where blob_key = 1;

dans ce cas la commande

Dim blobbyte = Reader.GetOracleBinary(0).Value

Prend la totalité du blob, passe la limite des 32K

David

Merci magloui 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.