Sqoop将CLOB列从Oracle数据库导入配置单元字符串

lyfkaqu1  于 2023-08-04  发布在  Oracle
关注(0)|答案(2)|浏览(125)

我试图运行一个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但它不适合我。
有谁知道怎么解决这个问题吗?

3b6akqbq

3b6akqbq1#

使用下面的选项直接将clob转换为字符串。

--map-column-java CLOB_column=String

字符串

zmeyuzjn

zmeyuzjn2#

我已经解决了我的问题。正如@Koushik_Roy评论的那样,解决方案包括直接将CLOB列转换为String,在sqoop中添加选项:

--map-column-java CLOB_column=String

字符串
(而不需要在查询中转换先前的任何内容)。

相关问题