SQLCode=-138 在大计数表上标记,但在小 DB2 上不标记

SQLCode=-138 flagging on large count tables but not small DB2

我构建了一个视图,其中我使用以下代码仅从格式为 'LastName,FirstName':

的字段中提取姓氏
VALUE(RTRIM(SUBSTR(A.PREVIOUS_NAMES,1,LOCATE(',', A.PREVIOUS_NAMES)-1)), '') 
AS "PREVIOUS_NAME",                                                         

当我在我们的沙箱环境中工作时,这个视图工作正常,但是当我将它移到测试中并尝试在 DBVisualizer 中打开视图时,数据结果提供了错误:

THE SECOND OR THIRD ARGUMENT OF THE SUBSTR OR SUBSTRING FUNCTION IS OUT OF 
RANGE. SQLCODE=-138, SQLSTATE=22011, DRIVER=4.22.29

沙盒有不到 11k 条记录,其中测试和生产系统接近 120 万条,所以我猜测这是由于该段代码的复杂性导致的性能问题。视图似乎仍然已创建,我可以查询它和 return 特定的 result/set 结果,我想我关心的是它是否可用于大型查询,或者性能是否确实如此在这种情况下有问题吗?

有没有更好的方法来解析姓氏而不必在定位函数上使用子字符串?

感谢您的帮助!

很可能这不是性能问题,只是有些行的数据没有逗号