【发布时间】:2018-08-27 18:24:53
【问题描述】:
如果我在 sqldeveloper(或 sqlplus)中运行以下查询:
select *
from passwordlog
where exists(
select USERUID
from otherTable
where uid=2
);
而where exists 的计算结果为假,结果为空。
结果不是 null 也不是布尔值,所以我测试这个结果的长度是否大于 1。
但我刚刚开始怀疑。结果是什么?它是一个空字符串吗?还是空?还有比检查返回字符串的长度更好的方法来执行此检查吗?
我希望能够做这样的事情(假设我们有 Oracleconnection、OracleDataAdapter 等):
string query = select *
from passwordlog
where exists(
select USERUID
from otherTable
where uid=2
);
然后在 C# 方法中:
public void SomeMethod() {
if(query == null) { } ...
or maybe
if(query == false) { } ...
}
谢谢
【问题讨论】:
-
你想做什么?添加一些示例表数据和预期结果。 (格式化文本,而不是图像。)
-
结果是一个空集,即没有返回行。
-
如果没有匹配,那么您最终将得到一个包含 0 行的结果集。使用最合适的方法进行测试,例如
OracleDataReader.HasRows或OracleDataReader.read() == true