日期:2014-05-17  浏览次数:20418 次

读oracle 的 long 字段问题
我自己封装了一个执行sql并获取返回结果的类,读取oracle11g的其他数据都没问题,唯独读到long字段不返回结果,请教下是sql语句问题还是程序问题,怎么解决

以下是封装类中的函数

// 可指定连接字符串执行SQL并获取结果
public string getConnResult(string ConnStr,string strSQL,int nCol)
{
string strResult = "";

try
{
// 连接数据库
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[ConnStr].ConnectionString);
OracleDataReader oradr;
OracleCommand oracmd;
oracmd = new OracleCommand(strSQL, conn);
conn.Open();
// 执行命令
oradr = oracmd.ExecuteReader();
// 读取内容
if (oradr.Read())
{
strResult = oradr[nCol].ToString();
}
// 关闭数据库
oradr.Close();
conn.Close();
}
catch
{

}

return strResult;
}


以下是调用,其中sgzj是long字段

showText = DBControl.getConnResult("DZCXYH","select distinct to_lob(sgzj),wgrq,jh from dda02 where wgrq=(select distinct max(wgrq) from dda02 where jh='" + wellName + "') and jh='" + wellName + "'",0);
long字段 c#读.net

------解决方案--------------------
我这是有多闲的蛋疼,每次自己问问题还得自己搞定,还得换号自己结账

后来试了下发现是sql语句的问题,在查询long字段时不允许使用 distinct 关键字,所以去掉就好了,例如
select sgzj,wgrq,jh from dda02 where wgrq=(select max(wgrq) from dda02 where jh='8B102') and jh='8B102'