컬럼 추가시 프로시저, 펑션들이 원래 다 깨지는건가요? 0 5 3,591

by 유환 [2019.07.02 10:01:40]


테이블에 컬럼 추가시 기존에 만들어진 프로시저에서 해당 테이블 사용하고 있으면

프로시저및 펑션이 깨지는거 같더대요.. 근대 깨지는게 있고 안깨지는게 있고;;

 

운영에서 컬럼 추가하고 해당 테이블 바라보는 프로시저나 펑션은 재 컴파일 해줘야 하나요?

컴파일 안해주면 계속 깨진채로 에러 나나요??

 

아참... 뷰 테이블도 컴파일 다시 해줘야 하나요?

 

오라클 입니다.

by 르매 [2019.07.02 11:48:15]

DBMS가 무엇인가요?

MS-SQL과 MySQL, MariaDB 기준으로는 컬럼을 추가했다는 이유만으로 SP나 Function 실행에 문제가 생기지는 않습니다.

문제가 있다면 SP나 Function에서.. 추가한 컬럼에 대한 핸들링이 안되어 있는 경우 입니다. 예를 들어 NOT NULL 속성의 컬럼을 추가했는데 INSERT 문에 빠져 있다던가 하는 것들이 되겠네요.

 


by 유환 [2019.07.02 12:45:08]

오라클 입니다.

어느건 깨지고 어느건 안깨지고 해서..요...


by jkson [2019.07.02 14:07:23]

오라클의 경우에 테이블 alter시 function등이 invalid 되었던 것 같은데 그래서 alter이후에 항상 invalid object를 일괄 compile 했던 것 같아요. 보통은 compile 안 해도 사용자가 해당 오브젝트를 사용하게 되면 자동으로 compile 되는 것 같았습니다(오라클 고유 기능인지 dba가 세팅해놓았던건지ㅋ) alter에 의한 문법 오류가 생기는 경우가 있으니 되도록 바로 compile해보는 게 좋겠죠.


by 마농 [2019.07.02 15:01:11]

네. invalid 상태가 됩니다.
다만, 해당 프로시져 호출시 자동으로 컴파일 되면서 수행됩니다.
하지만 자동에 맡기지 말고 수동으로 해주세요.


by 유환 [2019.07.02 23:45:56]

감사합니다.

제 기억으로는 수동으로 재 컴파일 하지 않고 업무화면 등에서 호출할때

처음에 오류 나고 그 다음 호출시는 실행되는것같은대요...

수동 컴파일 하지 않으면 처음 호출시 오류 나는거 맞지요?

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입