인프런 커뮤니티 질문&답변

고영호님의 프로필 이미지
고영호

작성한 질문수

Oracle PL/SQL 딱 이만큼..

Procedure 생성

패키지를 반드시 써야하는지?? 수정 될 경우...

작성

·

186

1

안녕하세요. 강의 감사히 잘 듣고 있습니다.~

질문 내용은,

패키지에 작성된 함수와 프로시져는

이미 생성된 함수와 프로시져와 같은 것인데

다시 패키지에 등록해서 쓰는 게 일반적인 것인지

아니면 상황에 맞게 패키지에 등록 안 하고 함수 프로시져를 따로 쓰는 것인지

패키지에 등록을 한다면 함수나 프로시져가 수정될 때

패키지에 등록된 같은 함수&프로시져도 수정해야하는 것인지 이해가 안갑니다...

정리하자면 ,,

1..함수 등록,, 프로시져 등록, 완성 -->> 함수와 프로시져를 패키지에 등록하여 패키지로 호출하여 사용

2.. 패키지에 반드시 등록하여 써줘야 한다??

3.. 2번일 경우 함수& 프로시져가 수정됨 -->> 패키지에 등록한 함수&프로시져도 같이 수정해줘야 한다?..

 

 

 

답변 2

1

고영호님의 프로필 이미지
고영호
질문자

충분한 답변이 되었습니다.!!! 감사합니다. 열공하겠습니다~

1

IT늦공 김부장님의 프로필 이미지
IT늦공 김부장
지식공유자

안녕하세요.
질문의 내용을 보니 제가 설명하면서 조금 더 부연설명을 했으면 좋았을거라는 생각이 드네요.
답변드려 보겠습니다.

1.함수 등록,, 프로시져 등록, 완성 -->> 함수와 프로시져를 패키지에 등록하여 패키지로 호출하여 사용
-> 펑션, 프로시저, 패키지는 각각의 독립된 객체와 같습니다.
일반적으로 펑선, 프로시저는 전체 시스템, 전체 PL/SQL 에서 공통으로 사용할때 선언해서 사용합니다.
패키지는 특정 프로세스에 대해 필요한 기능을 모아서 사용할때 패키지를 선언하고 그 안에 펑션, 프로시저를
사용하는 편입니다.

2.패키지에 반드시 등록하여 써줘야 한다??
-> 그렇지 않습니다.
위에 설명한대로 각 객체의 성격에 맞게 선언하여 사용하면 됩니다.

3.2번일 경우 함수& 프로시져가 수정됨 -->> 패키지에 등록한 함수&프로시져도 같이 수정해줘야 한다?..
-> 2번이 아니라고 했으니까 이부분은 넘어가구요.

 

혹시 혼란이 있을 것 같아 추가적으로 부연 설명 드립니다.

예를 들어
1. Function f_get_name()
2. Package P_COMM 패키지 안에 f_get_name() 펑션이 있다면
위 두개의 펑션 이름은 같습니다.
하지만, 저 두개의 펑션은 각각 독립적인 펑션입니다.

1번의 펑션은 f_get_name() 으로 사용하고
2번의 패키지내 펑션은 P_COMM.f_get_name() 으로 사용 됩니다.
펑션의 이름이 둘다 같아서 오해의 소지가 있기에 보통은 동일한 이름의 펑션은 패키지 내부에 있더라도 피하는게 올바른 작성법 입니다.

제가 질문하신 부분에 맞게 답변을 했는지 모르겠네요.
추가적으로 질문 있으시면 언제든지 올려주세요.

고영호님의 프로필 이미지
고영호

작성한 질문수

질문하기