계산식 적용하여 업데이트 처리 0 3 2,771

by 김원식 [SQLServer] [2008.12.29 16:06:15]


어려울 것 같지 않았던 문제로 오늘 하루종일 고생합니다.
고수분들께 도움을 요청할 시간이 된 것 같습니다...ㅡㅡ;

현재 상황은 테이블 하나에 varchar 형의 calc_text 컬럼에 계산식[예: '100*(1234.567/1999.123)'] 이 들어있고,  numeric(20,5) 형식의 result_value 컬럼이 있습니다.

Row수는 약 16000건 되는데, 이것을 한번에 업데이트 처리할 수 있는 방법이 필요하니다.
커서 돌려서 하는것으로는 고객이 원하는 응답시간을 맞출 수 없는 상황입니다.

저로써는 function, procedure 다 동원해 봤는데 커서를 돌리는 방법 외에는 뾰족한 방법이 없는 것 같습니다.
varchar 형을 numeric으로 변환하는데 계속 오류가 떨어지는군요...ㅡㅡ;

혹시 이런 사례가 있으셨던 분들께서 해결하신 방법을 공유해 주셨으면 합니다.

by 현 [2008.12.29 16:25:35]
그냥 업데이트 문에서 바로 계산해서 넣으시면 됩니다.
형변환하는데서 에러가 나는 경우는 데이터에 넘버타입이 아닌 데이터가 있어서 일 것입니다.

by 김원식 [2008.12.29 17:27:59]
SELECT CONVERT(NUMERIC(20,5),'1+1')
기본적으로 위의 쿼리조차 오류가 나는 상황입니다.
계산식 데이터 타입 전부 확인했구요...

by 마농 [2008.12.29 17:51:11]
계산식을 Distinct 하여 중복제거후 처리해 보시면 어떨런지요?
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입