- 之前接口中遇到一个问题,一个CLOB类型的变量。存放接口数据信息,但会报一个缓冲区太小的错误。
- CLOB最大容量为4G,存几千行数据也不应该报这个错的。
- 查看代码内容 l_clob := l_clob || '<G_HEADER>'; 都是这样拼接数据的
这样拼接会产生一个问题, clob类型 拼接 varchar2 类型时 , clob类型会转换为 varchar2类型!
解决方案:
用 to_clob(); 方法把 varchar2类型的数据进行转换。
例: 创建一个 varchar2变量 先拼接一部分数据, 然后CLOB类型变量再从varchar2取:
l_var := '<G_HEADER>';
l_var := '<CODE>' || r_h.doc_no || '</CODE>';
...
l_clob := l_clob || to_clob(l_var);