我试图运行一个sqoop进程,将一个表从Oracle数据库获取到Hive。该表有一个名为 VALUE 的CLOB类型列,这就是给我带来问题的列。为了将此表保存在hive中,在查询中,我将VALUE列转换为VARCHAR2,如下所示:
第一个月
但是当LENGTH(VALUE)> 3800时,我在执行sqoop时得到以下错误:Error: java.io.IOException: SQLException in nextKeyValue ... Caused by: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small.
个
我尝试使用此选项导入数据:--map-column-java VALUE=String
但它不适合我。
有谁知道怎么解决这个问题吗?
2条答案
按热度按时间3b6akqbq1#
使用下面的选项直接将clob转换为字符串。
字符串
zmeyuzjn2#
我已经解决了我的问题。正如@Koushik_Roy评论的那样,解决方案包括直接将CLOB列转换为String,在sqoop中添加选项:
字符串
(而不需要在查询中转换先前的任何内容)。