【发布时间】:2018-02-26 16:14:55
【问题描述】:
我们编写了一个返回 nvarchar2 的 oracle 函数。当它返回像'hello'这样的小值时它工作正常。但是,当 nvarchar2 变长(大约 3000 个字符)时,它会返回“ORA-06502:字符串缓冲区太小”错误。函数返回值的大小有限制吗?
我们使用这样的函数:
SELECT sampleFunction('sampleArg') FROM DUAL;
【问题讨论】:
-
存储函数结果的变量的大小是有限制的
-
您是否考虑过更改函数,使其返回
NCLOB?这可能会也可能不会满足您的需求 - 这取决于您如何使用函数值,例如您无法通过NCLOB进行分组或排序,但它实际上允许您无限长度。
标签: sql oracle stored-procedures nvarchar