• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

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

24.03.27 18:49 작성 조회수 91

1

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

질문 내용은,

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

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

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

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

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

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

정리하자면 ,,

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

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

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

 

 

 

답변 2

·

답변을 작성해보세요.

1

고영호님의 프로필

고영호

질문자

2024.03.28

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

1

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

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() 으로 사용 됩니다.
펑션의 이름이 둘다 같아서 오해의 소지가 있기에 보통은 동일한 이름의 펑션은 패키지 내부에 있더라도 피하는게 올바른 작성법 입니다.

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