inflearn logo
강의

Khóa học

Chia sẻ kiến thức

3. Khóa học phát triển web [Kiến trúc doanh nghiệp (EA)

7강 프로시저 호출하기 부분에서 Oracle의 경우 resultMap을 어떻게 받을 수 있을까요?

266

trefoil77

1 câu hỏi đã được viết

0

안녕하세요

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으로 받는 것이 불가능한걸까요?

 

강의에서 앞으로도 프로시저를 계속 사용할 것이라고 말씀하셨는데

이것 때문에 실습 따라가기에 불편함이 있을까봐 걱정입니다. 

 

친절하고 자세한 답변 기대하며

미리 감사드립니다.

 

spring 전자정부프레임워크

Câu trả lời 2

0

vmproductor0202

안녕하세요.개발자park입니다.

오라클은 어떻게 하는지 아래 강의에 나와있습니다.

7강 3:38초 부터 보시면 됩니다.

https://www.inflearn.com/course/lecture?courseSlug=%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%BD%94%EC%8A%A4-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80&unitId=38017&subtitleLanguage=ko

무료로 수강하기:

https://www.inflearn.com/course/lecture?courseSlug=%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%BD%94%EC%8A%A4-ea-%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC&unitId=155005&subtitleLanguage=ko

수강생이시면 무료 쿠폰요청을 닉네임을 적어서

간단하게 vmproductor@gmail.com로 메일을 보내주세요.

여기는 공개된 게시판이기에 메일로 부탁드립니다.

감사합니다.

0

vmproductor0202

단지 기존 강의는 오래되어서 음질이 별로이며,spring framework쪽보다는 프로시저 작성 만 참조하시는 것을 추천드립니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. trefoil77님.

Oracle 데이터베이스를 사용할 때, 프로시저 내에서 SELECT문을 사용하려면 반드시 INTO 절을 사용하여 조회 결과를 로컬 변수에 저장해야 합니다. 이는 Oracle PL/SQL의 규칙으로, SELECT문의 결과를 직접 리턴하는 기능이 없는 대신, 조회한 값을 OUT 파라미터나 구조체 등을 통해 반환해야 합니다.

해결 방안

  1. 참조 커서 사용: 프로시저에서 SYS_REFCURSOR를 OUT 파라미터로 선언하여 여러 레코드를 반환할 수 있습니다. MyBatis에서도 해당 참조 커서를 받아 사용할 수 있습니다.

  2. 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