안녕하세요.. 또 머리를 비비고 비비다 이렇게 또 글을 올리네요...
저희 회사는 MS SQL 2005를 사용하는데 본 섭에다 테스트할수가 없어 집에 서버를 구축하고 MS SQL 2012를 설치하여 DB를 똑같이 복사해 놓았습니다.
근데 프로그져를 실행하는 과정에서 2005에서는 오류가 나질 않는데 2012에서는 프로시져 실행중 다음부분에서 오류가 납니다.
오류내용은 'SSYSDB.SSMA.SUBSTR3_CHAR를 찾을수 없거나 이름이 불활실 합니다.'라고 나오는군요.
SYSDB.SSMA.SUBSTR3_CHAR(@v_GIKUP_YM, 1, 4)
위 SYSDB라는게 먼지 모르겠어요. 함수에도 없고 프로시져에도 없고, @v_GIKUP_YM은 지정 날짜(예 : 201501)값을 전달해 주는거구요.
대충 내용봐서는 전달된 날짜값에서 1부터 4인것 보니 해당 년을 뽑아내는것 같은데... 문제는 앞에 SYSDB.SSMA.SUBSTR3_CHAR문은 어디에서 가져오는지 모르겠네요.. 내장 함수 있지 아님 사용자 정의라면 함수 쪽에 정의되어 있어야하는데 아무리 찾아 봐도 없군요..
당연히 없으니 2012에서는 오류가 나는게 맞을텐데 2005에서는 정상적으로 처리가 됩니다. DB카피는 프로그램과 관련된 DB만 복사하여 테스트서버를 구축하였습니다. 혹시 2012로 오면서 변경된것이 있나 싶어 이렇게 질문드립니다. 전에 datetime를 사용하면서 2005와 2012가 달라져서 찾느라 고생한 경험이 있었거든요....
혹 가능하다면 위 코드를 2012에 맞게 수정하여 주시면 정말 감사하겠습니다.
고수님들 부탁드립니다.
[데이터베이스명].[스키마명].[오브젝트명(테이블, 프로시져, 함수 등)] 으로 구분됩니다.
SYSDB 이름의 데이터베이스가 아마도 라이브 서버에는 있을 것입니다.