2013-08-09 2 views
3

나는 루프와 변수 v_rownum을하고 난 그것에 대한 값을 설정하려면 :Oracle에서 루프의 변수를 설정하는 방법은 무엇입니까?

 FOR donvi_rows IN v_donvi 
     LOOP 
      DECLARE 
       v_rownum number; 
      SELECT r 
      INTO v_rownum 
      FROM 
      (SELECT ROWNUM AS r, k.Id 
      FROM don_vi k 
      WHERE k.ParentId = 1) 
      WHERE Id = donvi_rows.Id; 

     END LOOP; 

을하지만 그것은 예외를 throw : 나는 현재 오라클을 공부하고

PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: 

    begin function pragma procedure subtype type <an identifier> 
    <a double-quoted delimited-identifier> current cursor delete 
    exists prior 
The symbol "begin" was substituted for "SELECT" to continue. 

합니다. 나는 그것에 대해 많이 모른다. 내 문제를 해결하도록 도와주세요.

DECLARE 
    ... variable declarations 
BEGIN 
    ... program logic 
END; 

귀하의 코드는 다음과 같은 것을 가야한다 :

당신이 블록의 상단에있는 모든 변수를 선언 할 필요가 오라클과

답변

4

, BEGIN 전과

DECLARE 
    v_rownum number; 
    CURSOR v_donvi IS 
     SELECT * FROM whatever; 
    ... any other declarations 
BEGIN 
    FOR donvi_rows IN v_donvi 
    LOOP 
     SELECT r 
      INTO v_rownum 
      FROM (
      SELECT ROWNUM AS r, k.Id 
      FROM don_vi k 
      WHERE k.ParentId = 1 
     ) 
      WHERE Id = donvi_rows.Id; 
    END LOOP; 
END; 
0

은 어떻게 공부입니다 ?;) 저는 이것을 사용합니다 :

DECLARE 
    q NUMBER; 
     BEGIN 
      q := &x; 
      for x IN 1 .. q LOOP 
관련 문제