当行存在时,ODP.NET ExecuteReader 返回零结果

问题描述

当我执行以下代码时,值 dr.HasRowsfalse,而 dr.Read() 返回 false。在 sql Developer 中运行的相同查询返回 10 行:

var allTablessql = "select * from all_tables where table_name = 'ADDFIELDSPIPES'";
var cmd = new OracleCommand(allTablessql,conn);
cmd.CommandType = CommandType.Text;
var dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.Read())
{
    // We have rows!
}

如果我将查询更改为如下所示,则 dr.HasRowstrue 并且 dr.Read() 返回 true

var allTablessql = "select * from all_tables where table_name like '%'";

我怀疑 ODP.NET 在某处以某种方式在执行我提供的 sql 字符串之前查询了元数据,而这个元数据查询以某种方式阻止了 ODP.NET 为我的查询返回任何行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)