我想批处理多个选择语句以减少到数据库的往返。该代码类似于下面的伪代码。它在 SQL Server 上完美运行,但在 Oracle 上不起作用——Oracle 抱怨 sql 语法。我环顾四周,我能找到的从 Oracle 返回多个结果集的唯一示例是使用存储过程。是否可以在不使用存储过程的情况下在 Oracle 中执行此操作?我正在使用 MS Oracle 数据提供程序,但如果需要,可以使用 ODP.Net。
var sql = @"
select * from table1
select * from table2
select * from table3";
DbCommand cmd = GetCommand(sql);
using(var reader = cmd.ExecuteReader())
{
dt1.Load(reader);
reader.NextResult();
dt2.Load(reader);
reader.NextResult();
dt3.Load(reader);
}