1

如果有人可以提供帮助,请提前感谢...这让我发疯了!

我有一个像这样的查询

select * from tranHistory where itemid = 10 and created_dttm >= '21-Feb-2012';

很简单,对吧?从 vb.net 运行它不返回任何行。从 SQL Developer 运行它返回 99 行。我最初认为这是一个参数问题,因为查询过去看起来像

select * from tranHistory where itemid = 10 and created_dttm >= :tranHistoryDate;

在原始查询中还有另外两个参数,我验证它们的顺序正确。我将其简化为这种形式,以消除尽可能多的变量。我们使用 Oracle 11g、Visual Studio 2010 和 Oracle ODP.Net 作为数据提供者。

我一生都无法弄清楚为什么会失败!

4

2 回答 2

2

为了消除连接问题,如果您从子句中删除对日期的限制WHERE,它是否会返回 vb.net 中的任何数据?

如果是这样,很可能是日期字符串解析问题。检查服务器上的 NLS 设置,或尝试使用与语言无关的日期格式,如下所示:

and created_dttm >= TO_DATE('20120221', 'YYYYMMDD');

如果删除日期导致没有数据返回,那几乎可以肯定不是您的查询有问题,而是与数据库的连接有问题。它是否连接到与 SQL Developer 相同的架构?

于 2013-02-21T22:57:28.030 回答
1

>= date'2013-02-21' 在 SQL DEV 和您的代码中使用作品?如果是这样,你有隐式字符到日期转换的问题——这取决于你的会话设置......

于 2013-02-21T22:57:19.513 回答