.NET / Dapper / Oracle - 查询适用于一个 table,但 returns 对另一个无效

.NET / Dapper / Oracle - Query works for one table, but returns nothing for another

上下文

我有两个 table,FOOBAR。两者都有数据。我在 .NET 5 项目中使用 Dapper。当我尝试查询 FOO 时,得到的结果为零。当我使用相同的连接查询 BAR 时,我得到了预期的结果。怎么回事?

示例代码

using var connection = GetConnection();
await connection.OpenAsync(cancellationToken);

// THIS RETURNS ZERO RESULTS
var foos = await connection.QueryAsync("SELECT * FROM FOO");

// THIS RETURNS RESULTS AS EXPECTED
var bars = await connection.QueryAsync("SELECT * FROM BAR");

// THIS THROWS AN EXCEPTION (because the table doesn't exist)
var throws = await connection.QueryAsync("SELECT * FROM DOES_NOT_EXIST");

其他想法

有人知道这里发生了什么吗?

或者可能会发生什么?

Does anybody know what's happening here?

INSERTed 但未 COMMITed 的行仅在创建它们的会话中可见。因此,如果您创建了一些新行但没有在 SQL 开发人员会话中发出 COMMIT 命令,您将无法从任何其他会话中看到未提交的数据(即使您连接为相同的用户,因为它将创建不同的会话)。

如果是这种情况,解决方案是 COMMIT SQL 开发人员会话中的数据,然后其他会话就可以看到这些数据。