【发布时间】:2020-01-31 22:12:51
【问题描述】:
我正在使用以下代码的 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 中提及
【问题讨论】:
-
我使用最新更新的 Denodo 7.0 运行您的代码并且运行良好。所有字段都返回一个值。
-
@Montecarlo 是的,它也适用于我的本地,不确定客户端 Denodo 环境中的问题是什么。我对 dev 具有管理员访问权限,您可以告诉我需要检查哪些配置。我可以去看看
-
尝试使用您在 Denodo 服务器上安装的更新的 JDBC 驱动程序。