c#中怎么获取clob的内容?谁有代码啊,我刚入门 ,就遇到这样的问题,执行一个oracle中的一个sql语句,得到的结果是clob,clob的类型估计很难改了,怎么获取啊,我适用getbyes获取,但是报错啊
代码如下,错误是:Specified cast is not valid.
public bool ExecuteProcedures_ora(string procedureName, string tableName, string conditon, ref byte[] returnvalue)
{
OracleConnection connection = new OracleConnection(this.connectionString_Oracle);
try
{
connection.Open();
}
catch(Exception ex)
{
string s =ex.ToString();
}
OracleCommand com = new OracleCommand(procedureName, connection);
try
{
OracleDataReader aReader = com.ExecuteReader(); aReader.Read(); aReader.GetBytes(0,0,returnvalue,1,8000);
System.IO.FileStream stream = new FileStream("C:\\test11.txt",FileMode.Create); System.IO.BinaryWriter writerBinary = new BinaryWriter(stream);
writerBinary.Write(returnvalue);
writerBinary.Flush();
writerBinary.Close();
}
catch (Exception ex)
{
if (connection.State == ConnectionState.Open)
connection.Close();
return false;
}
if (connection.State == ConnectionState.Open)
connection.Close();
return true;
}
代码如下,错误是:Specified cast is not valid.
public bool ExecuteProcedures_ora(string procedureName, string tableName, string conditon, ref byte[] returnvalue)
{
OracleConnection connection = new OracleConnection(this.connectionString_Oracle);
try
{
connection.Open();
}
catch(Exception ex)
{
string s =ex.ToString();
}
OracleCommand com = new OracleCommand(procedureName, connection);
try
{
OracleDataReader aReader = com.ExecuteReader(); aReader.Read(); aReader.GetBytes(0,0,returnvalue,1,8000);
System.IO.FileStream stream = new FileStream("C:\\test11.txt",FileMode.Create); System.IO.BinaryWriter writerBinary = new BinaryWriter(stream);
writerBinary.Write(returnvalue);
writerBinary.Flush();
writerBinary.Close();
}
catch (Exception ex)
{
if (connection.State == ConnectionState.Open)
connection.Close();
return false;
}
if (connection.State == ConnectionState.Open)
connection.Close();
return true;
}
试了,还是有错拉
跟 aReader.GetValue(列索引) 是完全相同的。这一点我已经验证过了。
会不会是你的那个列不是选出字段列表里的第 0 列?
我上面写的 0 只是随便举的一个例子。