我构建了一个视图,其中我使用以下代码从格式为'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万,所以我猜这是一个性能问题,因为这段代码的复杂性。该视图似乎仍然已经创建,我可以查询它并返回一个特定的结果/结果集,我想我担心它是否可用于大型查询,或者在这种情况下性能是否真的是一个问题?
有没有更好的方法可以解析姓氏而无需在locate函数上使用子字符串?
感谢您的帮助!
答案 0 :(得分:1)
很可能这不是性能问题,只是某些行的数据没有逗号