2014-01-29 4 views
0

다음과 같은 SQL 쿼리에 따라 Oracle에서 select 쿼리 내에 복수형 into을 어떻게 설정합니까?Sql multiple select into

declare 
    v_a out varchar2; 
    v_b out varchar2; 
    v_c out varchar2; 

    begin 
     select a , b , c into v_a, v_b, v_c from table 
    end 
+1

도움이되기를 바랍니다; 그래서 당신의 질문은 무엇입니까? 여러 행을 반환하는 방법을 알고 싶습니까? 다시 얻은 데이터로 무엇을하고 싶습니까? –

+0

쿼리에 대해 테이블에서 하나의 레코드 만 가져 오면 올린 내용은 정확합니다. requerement에 대한 자세한 내용은 다음에서 더 많은 도움을 얻을 것입니다 ... –

+0

테이블의 각 행에 대해이 작업을 수행하려면 루프에 넣을 수 있습니다 ... –

답변

1

테이블에 단일 레코드가 포함되어 있으면 @AlexPoole이 주석에 언급 한 것을 제외하고 주어진 내용이 정확합니다. 또한 익명 블록에 OUT을 사용할 수 없습니다.

테이블에 여러 레코드가있는 경우 레코드를 저장할 컬렉션을 만들고 쿼리에 BULK COLLECT을 사용해야합니다. 그 의사 코드는 다음과 같습니다 :

  Declare 
       TYPE c_var is table of varchar2(100); 
       v_a c_var ; 
       v_b c_var ; 
       v_c c_var ; 

      Begin 

       Select a, b, ,c BULK COLLECT INTO v_a, v_b, v_c from table; 
      END; 

그런 다음 컬렉션을 반복하여 개별 요소에 액세스 할 수 있습니다.

, 즉 당신이 데이터의 단일 행에 대해 할 것입니다 누락 세미콜론 변수 크기에서

Vishad 외에도

+0

감사합니다. @vishad 이번에는 질의어를 다시 시도해 보았습니다. 위와 같이 지정했지만, 매개 변수를 지정하는 것을 잊어 버렸습니다. 실례합니다. –