2017-09-13 4 views
0

없는 작은 DB2가있는 나는 '성, 이름'포맷 필드에서 마지막 이름을 당겨하려면 다음 코드를 사용하고 있습니다 :SQLCODE = -138 대형 카운트 테이블에 신고하지만 내가보기를 구축

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 

을 샌드 박스는 테스트 및 프로덕션 시스템이 120 만에 가깝게되어있는 11,000 건 미만의 기록을 가지고 있으므로 이는 코드 조각의 복잡성으로 인한 성능 문제입니다. 뷰가 여전히 생성 된 것처럼 보이고 결과를 쿼리하고 특정 결과를 반환 할 수 있습니다. 큰 쿼리에 사용할 수 있는지 또는 성능이 실제로이 경우에 문제가된다고 생각합니까?

locate 함수에서 부분 문자열을 사용하지 않고도 성을 구문 분석 할 수있는 더 좋은 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

대부분 성능상의 문제가 아니며 일부 행에는 쉼표가없는 데이터가 있습니다.

+0

아 하! 그래서 나는 아마 쉼표의 부족을 설명하기 위해 사례 또는 무언가를해야합니다 .... 감사! – XB1213