7강 프로시저 호출하기 부분에서 Oracle의 경우 resultMap을 어떻게 받을 수 있을까요?
266
投稿した質問数 1
안녕하세요
EA 강의를 시작으로 열심히 들어보려 하고 있습니다.
사정 상 MariaDB 대신 Oracle을 사용하여
실습을 진행하고 있는데요 7강에서 문제가 발생했습니다.
오라클은 Procedure를 생성할 때
SELECT절이 있으면 반드시 INTO를 적어야 하는 것 같습니다.
SQL> edit
Wrote file afiedt.buf
1 CREATE OR REPLACE procedure JHBAEK.sp_myproc (
2 in_userid tbl_user.userid%type,
3 in_userpw tbl_user.userpw%type,
4 out_state out number
5 )
6 is
7 begin
8 update tbl_user
9 set userpw = in_userpw
10 ;
11 select userid, userpw
12 from tbl_user
13 where userid = in_userid
14 ;
15 out_state := 0;
16 end sp_myproc
17* ;
SQL> /
Warning: Procedure created with compilation errors.
SQL> show errors
Errors for PROCEDURE JHBAEK.SP_MYPROC:
LINE/COL ERROR
-------- -----------------------------------------------------------------
11/2 PLS-00428: an INTO clause is expected in this SELECT statement
SQL>
오라클의 경우 프로시저에서 SELECT 한 결과를
mybatis 통해 HashMap으로 받는 것이 불가능한걸까요?
강의에서 앞으로도 프로시저를 계속 사용할 것이라고 말씀하셨는데
이것 때문에 실습 따라가기에 불편함이 있을까봐 걱정입니다.
친절하고 자세한 답변 기대하며
미리 감사드립니다.
回答 2
0
안녕하세요.개발자park입니다.
오라클은 어떻게 하는지 아래 강의에 나와있습니다.
7강 3:38초 부터 보시면 됩니다.
무료로 수강하기:
수강생이시면 무료 쿠폰요청을 닉네임을 적어서
간단하게 vmproductor@gmail.com로 메일을 보내주세요.
여기는 공개된 게시판이기에 메일로 부탁드립니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. trefoil77님.
Oracle 데이터베이스를 사용할 때, 프로시저 내에서 SELECT문을 사용하려면 반드시 INTO 절을 사용하여 조회 결과를 로컬 변수에 저장해야 합니다. 이는 Oracle PL/SQL의 규칙으로, SELECT문의 결과를 직접 리턴하는 기능이 없는 대신, 조회한 값을 OUT 파라미터나 구조체 등을 통해 반환해야 합니다.
해결 방안
참조 커서 사용: 프로시저에서 SYS_REFCURSOR를 OUT 파라미터로 선언하여 여러 레코드를 반환할 수 있습니다. MyBatis에서도 해당 참조 커서를 받아 사용할 수 있습니다.
OUT 파라미터로 반환: 단일 행의 결과를 원한다면 SELECT 결과를 여러 OUT 파라미터에 매핑하여 반환할 수 있습니다. 이는 HashMap으로 데이터를 받기보다 구체적인 필드를 OUT으로 설정하여 직접 가져오는 방법입니다.
참고 자료
- MyBatis에서 Oracle 프로시저를 사용하는 예제는 여기에서 확인하실 수 있습니다. 해당 질문에서는 사용자 정의 프로시저와 관련된 문의에 대한 해결 방법을 안내하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
6강 실컷 진행하다가 마지막 실행부분에서 안되요...
0
84
2
이전버전 강의 쿠폰 받을 수 있나요?
0
100
2
jdk-17로 해도 상관없나요?
0
143
2
제6강. No bean named 'MainService' available 에러 발생
0
278
2
인텔리제이 세팅
0
161
2
http://localhost:8080/Egov_WEB/main2.do 요청 관련
0
172
4
1,2강 환경 구축시 메이븐 에러
0
588
2
Egov_WEB3 로그인을 하면 에러가 납니다.
0
278
3
db로 mariaDB가아니라 MySQL을 사용해도 괜찮을까요?
0
125
1
안녕하세요~ 쿠폰 관련해서 질문드립니다
0
104
1
혹시 이 강의부터 결제하면 "스프링 프레임워크+전자정부 표준프레임워크"의 강의를 들을수 없나요?
0
149
2
7강 질문드립니다
0
110
2
Egov_WEB3 실행시 에러질문드립니다.
0
165
2
스프링 프레임워크+전자정부 표준프레임워크 강의 쿠폰요청 메일
0
168
1
질문있습니다
0
140
1
현강의 및 국비지원 수강생입니다.
0
171
1
수정, 삭제 기능 관련 질문있습니다
0
236
2
13강 제공해주신 소스코드 중 boardList.do 에러
0
181
1
MainMapper.xml 파일에 프로시저 관련하여
0
316
3
강의자료 중 프로젝트 파일 여는 방법
0
309
2
전자정부표준프레임워크에서 마리아 디비 말고 다른 디비를 써도 되나요?
0
198
1
15강#1 질문드립니다.
0
207
2
파일을 다운로드 로드중 문제가 생겼습니다
0
180
1
제6강#0 질문입니다.
0
301
3

