为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8
【操作系统】:Centos7.6
【CPU】: Intel x86
【问题描述】*:
各位老师好,我在使用sqoop将hdfs的文件导出到达梦时,当目标表含有date类型时,数据文件对应的内容格式必须带时分秒,如图所示,但是按照内部规范,数据文件date类型的格式必须只有年月日,如yyyymmdd、yyyy-mm-dd等格式,因此无法从修改数据文件内容的角度解决。
Sqoop导出到Oracle也有类似的问题,网上提供了2种解决方法
第一种方法:
通过–map-column-java DATE_COLUMN_1=java.sql.Date,DATE_COLUMN_2=java.sql.Date的方式指定具体字段为java.sql.Date
第二种方法:
通过–connection-param-file conn-param-file.txt ,conn-param-file.txt的内容为oracle.jdbc.mapDateToTimestamp=false来进行全局的配置
经过验证,第一种方法达梦也适用,但是由于还需要将date类型的字段单独列出来,工作量较大,不像第二种方式便捷。因此想请教下各位达梦的jdbc有没有类似Oracle的oracle.jdbc.mapDateToTimestamp参数,谢谢。
达梦不支持类似Oracle的oracle.jdbc.mapDateToTimestamp的参数,可以在将对应字段类型改为date,达梦date类型为年月日的类型可以解决改问题
如果设置数据库 COMPATIBLE_MODE=2 即兼容oracle后,date类型将为timestamp(0),会出现类似报错