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管理员的每个选项来弄清楚。谢谢大家的支持。

10-04 12:47