[英]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.