【发布时间】:2016-02-04 11:53:46
【问题描述】:
我在 PLSQL 中有一个函数,它对字符串进行操作并返回 VARCHAR2 类型。
这个函数中的一个变量是
result_key VARCHAR2 (4000) := '';
当它处理大量数据时,我收到ORA-06502: PL/SQL: numeric or value error: character string buffer too small 错误。
似乎我必须扩展我的 result_key 变量。我看到的唯一解决方案是将result_key 声明为
result_key VARCHAR2 (8000) := '';
我想知道是否可以在不声明result_key 的固定大小的情况下做到这一点。
【问题讨论】:
-
从 11g R1 开始,您可以通过定义具有最大长度的变量来使您的
varchar2变量大小为“动态”:varchar2(32767)。有关详细信息,请参阅stackoverflow.com/q/24831972/272735。但是 32767 字节是硬限制。如果您的数据不符合限制,那么您必须切换到clob。