Denodo自定义包装器我正在使用以下代码,在timestamp_field中,timestamptz_field列为空白。
@Override
public CustomWrapperSchemaParameter[] getSchemaParameters(
Map<String, String> inputValues) {
return new CustomWrapperSchemaParameter[] {
new CustomWrapperSchemaParameter("date_field", java.sql.Types.DATE)
, new CustomWrapperSchemaParameter("timestamp_field", java.sql.Types.TIMESTAMP)
, new CustomWrapperSchemaParameter("timestamptz_field", java.sql.Types.TIMESTAMP_WITH_TIMEZONE)
, new CustomWrapperSchemaParameter("time_field", java.sql.Types.TIME)
};
}
@Override
public void run(CustomWrapperConditionHolder condition,List<CustomWrapperFieldExpression> projectedFields,CustomWrapperResult result, Map<String,String> inputValues)
throws CustomWrapperException {
String strDatewithTime="2019-08-29 20:46:46.166666700";
// TODO Auto-generated method stub
int index = strDatewithTime.indexOf(".");
if(index>0)
{
strDatewithTime= strDatewithTime.substring(0, index);
}
DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
result.addRow(new Object[]{
LocalDate.parse("2017-10-11"),
LocalDateTime.parse(strDatewithTime,FORMATTER),
OffsetDateTime.parse("2015-03-08T01:59:59+01:00"),
LocalTime.parse("21:15:45")},
projectedFields);
}
为了使其正常工作,我需要更改任何设置吗?
都是硬编码,我认为没有任何代码问题。下面的链接https://community.denodo.com/docs/html/browse/7.0/vdp/developer/developing_extensions/developing_custom_wrappers/dealing_with_datetime_and_interval_types上提到了此代码
最佳答案
我已找到问题并解决。本地VDP客户端需要一些补丁。 Server vdp已安装了一些其他修补程序。代码正确。
安装这些修补程序后,数据将正确显示。我通过研究vdp管理员的每个选项来弄清楚。谢谢大家的支持。