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 结果,我想我关心的是它是否可用于大型查询,或者性能是否确实如此在这种情况下有问题吗?
有没有更好的方法来解析姓氏而不必在定位函数上使用子字符串?
感谢您的帮助!
很可能这不是性能问题,只是有些行的数据没有逗号
我构建了一个视图,其中我使用以下代码仅从格式为 '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 结果,我想我关心的是它是否可用于大型查询,或者性能是否确实如此在这种情况下有问题吗?
有没有更好的方法来解析姓氏而不必在定位函数上使用子字符串?
感谢您的帮助!
很可能这不是性能问题,只是有些行的数据没有逗号