프로시져 부분 질문드립니다. 0 4 1,340

by 순서기 [PL/SQL] [2015.03.26 10:48:07]


--create table pro(
--    input1 varchar2(10),
--    input2 varchar2(10),
--    output1 varchar2(10),
--    output2 varchar2(10),
--    output3 varchar2(10),
--    output4 varchar2(10)
--);




create or replace procedure pro_calc
(inp1 in pro.input1%type, inp2 in pro.input2%type, result out varchar2)
is
var_inp1 varchar2(10);
var_inp2 varchar2(10);
var_out1 varchar2(10);--덧셈
var_out2 varchar2(10);--뺄셈
var_out3 varchar2(10);--곱셈
var_out4 varchar2(10);--나눗셈
L_NUM1 NUMBER;--문자 검사1
L_NUM2 NUMBER;--문자 검사2
begin

    SELECT TO_NUMBER(INP1), TO_NUMBER(INP2) INTO L_NUM1 ,L_NUM2 FROM DUAL;
    
    var_out1:= inp1+inp2;
    var_out2:= inp1-inp2;
    var_out3:= inp1*inp2;
    var_out4:= round(inp1/inp2);
    result := ''; --결과값 출력
   
   select input1,input2 into var_inp1,var_inp2 from pro where input1=inp1 and input2=inp2; --iNPUT1 ,inp1 같은 값이 있으면 TEST1 변수에 입력됨
  -- select * from pro where input1=inp1 and input2=inp2;
   exception when no_data_found then  -- 만약 위 SELECT INTO 에서 값이 없다면 바로 예외가 발생하여 위 dbms_output 문은 실행되지 않고 아래가 실행됨.

   insert into pro values(inp1,inp2,var_out1,var_out2,var_out3,var_out4); -- 테이블에 값을 INSERT
 --  select * from pro where input1=inp1 and input2=inp2;
   commit;
   
   when zero_divide then
   result :='0으로나눌수없습니다.';
   rollback;
   
   when invalid_number then 
   result :='문자가 있음.';
   

   end;

이러한 프로시져에서 
최종적으로 끝나면 
select * from pro where inpu1=inp1 and input2=inp2;

쿼리를 실행하고 싶은데 어느 부분에 넣어야 하나요?

 

by 창조의날개 [2015.03.26 13:33:19]

프로시저에서 SELECT를 하셨으면 INTO로 변수에 넣어야 할텐데요..

거기서 갑자기 SELECT를 하시는 이유가 뭔가요?

입력이 잘됐는지 보려면 SQLPLUS에서 SELECT 해 보셔야 할 듯 합니다.


by 순서기 [2015.03.26 13:39:26]

아 .. into가 없네요 ㅠㅠ

최종적으로 jsp에 결과값 4개를 보여주고 예외처리가 나오면 result 값을 alert로 보여주고싶어서

그렇습니다. 

어느부분에 select절이 들어가면 되나요?


by 창조의날개 [2015.03.26 13:58:22]

결과 값이라면 var_out1,var_out2, var_out3, var_out4 이렇게 4개의 변수 값을 말하는 건가요?

만약 그렇다면 result 변수를 4개 만들어서 보내주면 되겠죠..

하지만 해당 내용들을 공부 하는 차원에서 테스트 하는 거라면 모를까

프로젝트에서 하시는 거라면 저렇게 프로시저까지 만들어서 할 필요 까지는 없어 보이네요..

 


by 순서기 [2015.03.26 14:16:30]

도움 주셔서 감사합니다.

혼자서 연습하는거라 프로시져 하나에서 다해보려 했습니다 !!

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