오라클 프로시저 select문 질문입니다. 0 1 1,408

by 피터슨 [Oracle 기초] [2017.01.19 11:08:47]


CREATE OR REPLACE PACKAGE BODY PKG_PAY_FORM AS

  PROCEDURE PC_RECEIPT_PAY(
      IN_RPY_PACT_ID    IN  VARCHAR2        
    , IN_RPY_CLS_SEQ    IN  NUMBER         
    , IN_MED_DT         IN  DATE            
    , IN_RPY_SEQ        IN  NUMBER          
    , RPY_PACT_ID       OUT VARCHAR2        
    , INSOWN_1          OUT VARCHAR2
    , INSOWN_2          OUT VARCHAR2
    , INSOWN_3          OUT VARCHAR2
  )
    IS
    BEGIN

select
    MAX(RPY_PACT_ID) RPY_PACT_ID ,
    MAX(INSOWN_1) INSOWN_1,
    MAX(INSOWN_2) INSOWN_2,
    MAX(INSOWN_3) INSOWN_3
from(
    select RPY_PACT_ID,
        DECODE(CODENAME,'01 ',INSOWN,null) INSOWN_1,
        DECODE(CODENAME,'02',INSOWN,null) INSOWN_2,
        DECODE(CODENAME,'03',INSOWN,null) INSOWN_3
    from PAY_TEST
    where RPY_PACT_ID = IN_RPY_PACT_ID
      and RPY_CLS_SEQ = IN_RPY_CLS_SEQ
      and MED_DT      = IN_MED_DT
      and RPY_SEQ     = IN_RPY_SEQ
);

    END PC_RECEIPT_PAY;

END PKG_PAY_FORM;

안녕하세요 

프로시저를 이용 SELECT문을 돌릴려고 하는데요 위 패키지 바디를 만들려고 하니 SELECT INTO 오류가 납니다.

해당 내용을 찾아보니 SELECT문을 이용 시에는 INTO 절이 꼭 있어야지 된다고 하더라구요.

그래서 INTO를 SELECT 옆에 붙여봤는데 똑같은 오류가 납니다.

어느 부분에 INTO를 넣어야 하는지 알려주시면 감사하겠습니다.

by jkson [2017.01.19 11:14:05]

SELECT MAX(RPY_PACT_ID) RPY_PACT_ID ,
       MAX(INSOWN_1) INSOWN_1,
       MAX(INSOWN_2) INSOWN_2,
       MAX(INSOWN_3) INSOWN_3 INTO RPY_PACT_ID, INSOWN_1, INSOWN_2, INSOWN_3
~~~  

값을 받아서 OUT 변수에 담으실 거 맞죠?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입