पढ़ने की कोशिश कर रहा हूं मैं ओरेकल डेटाबेस से एक बीएलओबी पढ़ने की कोशिश कर रहा हूं। फ़ंक्शन GetFileContent एक पैरामीटर के रूप में p_file_id लेता है और एक BLOB लौटाता है। बीएलओबी एक डॉक्स-फाइल है जिसे किसी फ़ोल्डर में कहीं भी लिखा जाना चाहिए। लेकिन मैं बिल्कुल नहीं समझ सकता कि बीएलओबी कैसे पढ़ा जाए। वहाँ निश्चित रूप से कुछ return_value-परमाटर में संग्रहीत के बादब्लॉब
OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
है मूल्य है {बाइट [9946]}। लेकिन मैं जब
long retrievedBytes = reader.GetBytes(1, startIndex, buffer, 0, ChunkSize);
इसे कहते हैं InvalidOperationException पकड़ा गया था को क्रियान्वित करने में त्रुटि मिली: "। कोई डेटा पंक्ति या स्तंभ के लिए मौजूद है"
cmd = new OracleCommand("GetFileContent", oraCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("p_file_id", OracleType.Number).Direction = ParameterDirection.Input;
cmd.Parameters[0].Value = fileID;
cmd.Parameters.Add("return_value", OracleType.Blob).Direction = ParameterDirection.ReturnValue;
cmd.Connection.Open();
OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
reader.Read();
MemoryStream memory = new MemoryStream();
long startIndex = 0;
const int ChunkSize = 256;
while (true)
{
byte[] buffer = new byte[ChunkSize];
long retrievedBytes = reader.GetBytes(1, startIndex, buffer, 0, ChunkSize); //FAILS
memory.Write(buffer, 0, (int)retrievedBytes);
startIndex += retrievedBytes;
if (retrievedBytes != ChunkSize)
break;
}
cmd.Connection.Close();
byte[] data = memory.ToArray();
memory.Dispose();
मैं समारोह से ब्लॉब कैसे पढ़ सकते हैं:
यहाँ कोड है?
इसके बारे में काम कर रहे पूर्ण स्रोत कोड नमूने के साथ कोई अंतिम समाधान? – Kiquenet