Q & A

Re: 프로시저 실행시 오류

Date2018.11.21 / Hit : 14552
안녕하세요. 웨어밸리 오렌지팀입니다.

Orange for Altibase에서는 프로시저의 output 파라미터를 통해서 output데이터를 가져올 수는 있으나

해당 값을 프로시저 밖에서 Server Output으로 바로 출력하는 함수의 인자값으로 사용할 수 없습니다.

Server Output탭에서 프로시저에서 사용하는 데이터를 출력하시려면 실행하시는 프로시저 안에서 PRINTLN 함수를 사용하셔야 합니다.

dbms_output.put_line 는 Oracle에만 사용가능하며 Altibase에서는 PRINTLN함수를 사용해주시기 바랍니다.



Out 파라미터의 데이터는 바인드 파라미터를 통해서 가져오는 방법은

Altibase에서 바인드 변수 사용하려면 ?을 바인드 변수로 사용해주셔야 합니다.

아래는 테스트 코드이오니 참고해주시기 바랍니다.

1. 프로시저 생성
create or replace procedure SCOTT.TEST_PROC
(NUM OUT NUMBER, NUM2 IN NUMBER)
is
begin
NUM := NUM2 * 2

PRINTLN(NUM)
PRINTLN(NUM2)

end


2. SQL Tool에서 아래 쿼리 실행
exec SCOTT.TEST_PROC(?, ?)

여기서 첫번째 ? - output 파라미터, 두번째 ?는 - input 파라미터입니다.input 파라미터는 바인드 변수 사용하지 않으셔도 됩니다.
위의 쿼리 실행하면 Bind Variable List 창이 오른쪽 상단에 뜹니다.
그 상태에서 output parameter ?가 있는 row의 Value 입력창에 output 으로 가져올 데이터의 버퍼 사이즈만큼 공백을 입력해주세요

그 이후에 다시 쿼리 실행하면 공백 길이만큼의 output 데이터가 Value 항목에 조회됩니다.

Server Output 탭 선택하신 상태에서 쿼리 실행하시면 프로시저안의 PRINTLN함수를 통한 데이터 출력이 조회됩니다.

감사합니다.
  • 대표전화
    1660-1675

  • 기술 문의
    02-6931-1734

  • 오렌지 문의
    070-8666-8175

  • 라이선스 문의
    02-6931-1728