Oracle 11g에서의 association 활용
Collections 1. 개념 (Associative , Varrays , Nested Tables )
강의의 17분쯤에 association으로 활용을 해주십니다.
근데 Oracle 11g에서는 패키지 헤더(Specification인데 편하게 헤더라고 할게요)에서 association을 값을 주며 초기화할 수 없습니다.
그래서 GPT에게 물어보며 얻어낸 결과물을 공유드립니다.
프로시저와 펑션을 활용했습니다.
패키지 헤더
create or replace PACKAGE PKG_COMMON AS
...
/* Associative array */
type Capital is table of varchar2(50) -- Associative array type
index by varchar2(50); -- char type indexed by string
-- index by pls_integer; -- only number type key
PROCEDURE set_city_capital(cities Capital);
FUNCTION get_city_capital RETURN Capital;
END PKG_COMMON;패키지 바디
getter, setter 개념을 프로시저와 펑션에 접목했습니다.
create or replace PACKAGE BODY PKG_COMMON AS
city_capital Capital;
PROCEDURE set_city_capital(cities Capital) IS
BEGIN
city_capital := cities;
END set_city_capital;
FUNCTION get_city_capital RETURN Capital IS
BEGIN
RETURN city_capital;
END get_city_capital;
END PKG_COMMON;호출 블럭
DECLARE
temp_city_capital PKG_COMMON.Capital;
v_index varchar2(50); -- Scalar variable
BEGIN
temp_city_capital('한국') := '서울';
temp_city_capital('프랑스') := '파리';
temp_city_capital('영국') := '런던';
PKG_COMMON.set_city_capital(temp_city_capital);
-- print associative array:
v_index := temp_city_capital.first; -- get first element of array
while v_index is not null loop
dbms_output.put_line('population of ' || v_index || ' is ' || temp_city_capital(v_index));
v_index := temp_city_capital.next(v_index); -- get next element of array
end loop;
END;이렇게 하면
/*
population of 영국 is 런던
population of 프랑스 is 파리
population of 한국 is 서울
*/결과가 잘 나오는 것을 확인할 수 있습니다.
다만, 강사님의 의도와 다르지 않을까 싶기도 하네요. 어쨋든 11g에서도 활용할 수 있어 다행입니다 ㅎㅎ
Answer 1
1
강의에 대해 부족한 부분을 설명해 주셔서 감사합니다.
11g 에서도 거의 다른 부분은 없을거라 생각했는데, 문제 되는 부분을 AI 툴까지 활용해서
해결하시다니 멋지시네요 ^^
vercel실행 - failed to fetch
0
12
1
함수기반 인덱스
0
29
2
날짜 인덱스관련 질문
0
26
1
복합인덱스 확인법
0
23
0
77번 문제
0
27
1
76번 문제
1
35
2
64번 문제 관련
0
37
2
2,3차 정규화 질문
0
44
2
실전 모의고사 난이도
0
61
2
21번 마지막 설명에 대해 질문이 있습니다.
0
49
2
노랭이67번
0
36
1
실습용 테이블, 데이터 생성 파일 있을까요?
2
60
2
DECLARE 오류
0
124
2
commit시점은 어떻게 되나요?
1
244
3
트랜잭션 처리의 주체는 누가 될 것인가 에 대해서 궁금합니다.
1
129
2
PL/SQL을 사용하면 어떤 장점이 있나요?
1
251
2
SQL Developer 프로그램 사용 팁 질문 드립니다.
0
651
2
7-3 Explicit Cursor (명시적커서, 사용자정의커서) 질문 있습니다.
1
269
1
11gR2 에서 REAL_ORD 테이블 생성시 DEFAULT 시퀀스 문제
0
534
2
패키지를 반드시 써야하는지?? 수정 될 경우...
1
392
2
real_ord 테이블 포렌키 에러 문의
1
356
1
real_ord 테이블 행 문의 드립니다
0
241
1
11g
0
369
1
테이블 및 컬럼 설명 관련 문의
1
394
1

