DataBase/Oracle

[oracle] 오라클에서 System.out.print()?! 프린트 하는 법

희랍인 조르바 2018. 9. 4. 20:17


프로시저를 만들 일이 거의 없어서 지식이 깊지 않다. 그래서 난 프로시저에서 print를 할 수 있다는 것도!! 


try, catch문처럼 exception처리가 가능하다는 것도 모르고 있었다!!! 


'오늘도 한 수 배워갑니다.'


모르고 있었던 개념이라 프로시저에서 값을 찍어 볼 수 있다는 것에 대해 굉장히! 놀랐다. 바보같은 모자란 나...


function이나 procedure에서 값을 찍으려면 아래와 같이 사용하면 된다.


먼저, SQL창에서 옵션을 켠다.


1
SET SERVEROUTPUT ON FORMAT WRAP -- 프린트를 찍기 위해 옵션 온
cs



다음 function 안에서 어떻게 선언해야 보이냐하면,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE OR REPLACE FUNCTION MAKE_CHOCOLATE(
    something..
 
)RETURN VARCHAR2 IS
BRAND_NAME  VARCHAR2(32);
 
BEGIN
    
    function logic...
    
    DBMS_OUTPUT.PUT_LINE(BRAND_NAME);
    DBMS_OUTPUT.PUT_LINE('로직 타고 있니?');
 
RETURN BRAND_NAME;
END;
cs


DBMS_OUTPUT.PUT_LINE( '프린트할 내용')을 입력하고,


SQL창에서 function이나 procedure를 script로 실행하면 script에 프린트할 내용이 로그에 찍힌다.



* 변수와 문자열을 함께 출력하려면 문자열을 합치는 연산자(||)를 사용하면 된다.


ex) 


1
DBMS_OUTPUT.PUT_LINE('로직 타고 있니? 그리고 변수 값은? ' || BRAND_NAME);
cs