繁体   English   中英

在日期字段上使用where条件的Java代码在oracle中查询视图

[英]querying a view in oracle using java code with a where condition on a date field

我需要连接到oracle视图中的一个视图,该视图包含有关其他表中某些矩阵填充的信息。 视图(v_matrix)的结构为:PERIOD_START_TIME NOT NULL DATE,MATRIX_TABLE VARCHAR2(20),MATRIX_NAME VARCHAR2(20),COMPLETION_TIME DATE

我正在使用使用jdbc的Java代码连接到视图。

我有的查询是:

String query = "Select * from v_matrix where PERIOD_START_TIME LIKE \'2016-04-18 17:%\' AND MATRIX_TABLE = \'" + tableName + "\'  AND MATRIX_NAME IN (" + inClauseStr.toString() + ")";

问题是查询什么也没获取,而我可以在2016年4月18日的第17小时按PERIOD_START_TIME在视图中看到大约200条记录。相同的查询在SQL Developer中工作正常

我尝试使用Google搜寻找不到任何有关如何使用Java代码过滤日期字段上的记录的教程。

我尝试将查询更改为

String query = "Select * from v_kpi_availability where TO_CHAR(PERIOD_START_TIME,\'YYYY-MM-DD HH24:MI:SS\') LIKE \'2016-04-18 17:%\' AND KPI_TABLE = \'" + tableName + "\'  AND KPI_NAME IN (" + inClauseStr.toString() + ")";

但是查询仍未获取任何记录PS:数据库为Oracle 11g(11.2.0.4)

使代码惊奇的是,在带有以下查询的预生产环境中工作:

String query = "Select * from v_kpi_availability where TO_CHAR(PERIOD_START_TIME,\'YYYY-MM-DD HH24:MI:SS\') LIKE \'2016-04-18 17:%\' AND KPI_TABLE = \'" + tableName + "\'  AND KPI_NAME IN (" + inClauseStr.toString() + ")";

之所以不能在实验室中工作是因为实验室是在Oracle 10g上实现的,日期的实现有些不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM