오라클에서 UNION ALL 개수 제한이 있나요? 0 3 10,132

by 이기락 [Oracle 기초] ORACLE UNION UNION ALL [2018.10.08 04:24:27]


시스템을 운영하다보니

업무 특성상

많은 데이터를   UNION ALL 을 사용해서

데이터를 처리해야 하는 상황이 생겼습니다.

 

구글링을 좀 해봐도 답이 보이질 않아서 그런데요. ^^

UNION ALL로 쿼리를 만들때

몇개까지 가능한지 아시는 분 있나요? 

참고로 

웹 기반의ui에서 실행 하고

컬럼 10개 정도에(최대 약6000byte)

약 2만개 정도 넣을수도 있습니다

답변 주신 글로발 템프 테이블

ui에서 사용하기도 하는지요?

 

막 자바기반에서 테스트 했더니

힙에러 나버리네요 ㅋㅋ

 

ex)

SELELCT '1' AS A, '2' AS B FROM DUAL UION ALL

SELELCT '5' AS A, '7' AS B FROM DUAL UION ALL

SELELCT '6 'AS A, '3 'AS B FROM DUAL UION ALL

SELELCT '7 'AS A, '6 'AS B FROM DUAL UION ALL

                        .

                        .

                        .

by 마농 [2018.10.08 08:51:59]

1000 개

아! 1000 개는 IN 절의 개수 제한이네요.


by 우리집아찌 [2018.10.08 08:53:34]

몇개나 union all 하시는지는 모르지만 무한대에 가까울경우는 차라리

global temporary table 을 를 사용해보시는게 좋지 않을까요?

https://oracle-base.com/articles/misc/temporary-tables


by 야신 [2018.10.09 23:50:46]
-- Created on 2018-10-09 by PRIKEY 
DECLARE
  -- Local variables here
  i        INTEGER;
  TYPE orgcurtype IS REF CURSOR;
  mfg_cv orgcurtype;
  v_clob CLOB;
BEGIN
  FOR i IN 1 .. 6987 LOOP
    v_clob := v_clob || 'union all select 2 from dual ';
  
  END LOOP;
  dbms_output.put_line(1);
  v_clob := substr(v_clob,10);

  OPEN mfg_cv FOR v_clob;
  dbms_output.put_line(2);
  
EXCEPTION
  WHEN OTHERS THEN
    dbms_output.put_line(SQLERRM);
END;



6988 번째에서 통신이 끊기더라고요. 거의 6987 번 정도 사용가능하지 않을까 싶네요.

 

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