首页 > 解决方案 > 当存在行时,ODP.NET ExecuteReader 返回零结果

问题描述

当我执行以下代码时,值为dr.HasRowsfalsedr.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.HasRows则返回:truedr.Read()true

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

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

标签: oracleodp.netoracle-manageddataaccess

解决方案


推荐阅读