24.03.27 18:49 작성
·
173
1
안녕하세요. 강의 감사히 잘 듣고 있습니다.~
질문 내용은,
패키지에 작성된 함수와 프로시져는
이미 생성된 함수와 프로시져와 같은 것인데
다시 패키지에 등록해서 쓰는 게 일반적인 것인지
아니면 상황에 맞게 패키지에 등록 안 하고 함수 프로시져를 따로 쓰는 것인지
패키지에 등록을 한다면 함수나 프로시져가 수정될 때
패키지에 등록된 같은 함수&프로시져도 수정해야하는 것인지 이해가 안갑니다...
정리하자면 ,,
1..함수 등록,, 프로시져 등록, 완성 -->> 함수와 프로시져를 패키지에 등록하여 패키지로 호출하여 사용
2.. 패키지에 반드시 등록하여 써줘야 한다??
3.. 2번일 경우 함수& 프로시져가 수정됨 -->> 패키지에 등록한 함수&프로시져도 같이 수정해줘야 한다?..
답변 2
1
1
2024. 03. 28. 08:37
안녕하세요.
질문의 내용을 보니 제가 설명하면서 조금 더 부연설명을 했으면 좋았을거라는 생각이 드네요.
답변드려 보겠습니다.
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() 으로 사용 됩니다.
펑션의 이름이 둘다 같아서 오해의 소지가 있기에 보통은 동일한 이름의 펑션은 패키지 내부에 있더라도 피하는게 올바른 작성법 입니다.
제가 질문하신 부분에 맞게 답변을 했는지 모르겠네요.
추가적으로 질문 있으시면 언제든지 올려주세요.