对于ETL目的,我需要将DB记录转换为平面文件。为此,我必须将所有记录转换为CHAR。在那张表中,它有几列CLOB数据类型。所以,我尝试了以下功能:如何在Oracle中将CLOB转换为CHAR数据类型?
DBMS.LOBS_SUBSTR(column_name, Length(column_name))
Error: ORA-06502 Pl/sql: numeric value error: character string buffer too small ORA-06512: at line 1 06502. 00000 - "PL/SQL: numeric or value error ℅s"
请澄清你的问题。首先,你确定要转换为CHAR而不是VARCHAR2吗?你所有的价值都是一样的吗?然后,你的意思是“它不应该受限于字符长度......” - 没有长度限制的唯一数据类型是CLOB,这是它首先被引入的唯一原因。 – mathguy
我将编辑我的答案。感谢您的建议 –
另外:如果你已经尝试了DBMS.LOBS_SUBSTR,那应该会给你一个不同的错误(比如没有这样的函数)。如果您难以复制GurV写的内容,请使用“复制”和“粘贴”编辑。如果实际上你使用了正确的函数DBMS_LOB.SUBSTR,并且你得到了一个错误,那么肯定不是**,因为列中存在'null';那些会很好地工作。 – mathguy