DEVELOPER:ODP.NET Serving Winning lobs:
Http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65odpnet-085139.html
Data Provider for. NET Developer ' s Guide:
https://docs.oracle.com/database/121/ODPNT/OracleBlobClass.htm#ODPNT4035
Read the code for a picture file from the Blob field:
1 OracleConnection con = new OracleConnection(connStr);
2 con.Open();
3
4 // statement to get a blob
5 string sql = "select yz from sysusers where yhdh=‘123‘";
6
7 // create command object
8 // InitialLOBFetchSize
9 // defaults to 0
10 OracleCommand cmd = new OracleCommand(sql, con);
11
12 // create a datareader
13 using (OracleDataReader dr = cmd.ExecuteReader())
14 {
15 // read the single row result
16 dr.Read();
17 // use typed accessor to retrieve the blob
18 OracleBlob blob = dr.GetOracleBlob(0);
19
20 // create a memory stream from the blob
21 using (MemoryStream ms = new MemoryStream(blob.Value))
22 {
23 // set the image property equal to a bitmap
24 // created from the memory stream
25 pictureBox1.Image = new Bitmap(ms);
26 }
27 }
Save the file to the Blob field code:
1 con. The Open ();
2
3 // utilize transaction processing (must)
4 OracleTransaction transaction = con.begintransaction ();
5 string SQL ="select yz from sysusers where yhdh= '123' FOR UPDATE";
6 OracleCommand CMD = new OracleCommand(SQL, con);
7
8 using (OracleDataReader reader = cmd.executereader ())
9 {
Obtain the first row of data.
11 reader. The Read ();
12 / / Obtain a LOB.
13 OracleBlob = reader.getoracleblob (0);
14 blob. Erase ();
15 // writes the file to the BLOB
16 byte [] Buffer;
17 FileStream fs = new FileStream(@"d:\01.jpg", filemode. Open);
18 using (MemoryStream ms = new MemoryStream())
19 {
Int b;
21 while ((b = fs.readbyte ())! = 1)
22 {
23 Ms. WriteByte ((byte), b);
24}
25 Buffer = Ms. ToArray ();
26}
27
28 // Begin ChunkWrite to improve performance
29 // Index updates occur only once after EndChunkWrite
30 blob. The Position = 0;
31 blob. BeginChunkWrite (); // it is not necessary to enable BeginChunkWrite, only performance related
32 blob. Write (Buffer, 0, Buffer Length); Write a blob field from byte data
33 blob. EndChunkWrite ();
34 blob. The Close ();
35}
36 // commit the transaction
37 transaction.Com MIT ();
38 con. The Close ();
Odp.net Read and write Oracle BLOB fields