2016-08-10 12 views
-1

以下の2つの例のカーソルを組み合わせて、all、candy、cake、popcornの4つの条件すべてのデータを取得する方法を教えてください。 forループで?Forループのカーソル

I持って、空の文字列を指定できます3セッション/グローバル変数

 

    s_Candy Varchar2(5); 
    s_Cake Varchar2(5); 
    s_Popcorn Varchar2(5); 

 


    Cursor My_All_Cur Is 
     ... Gets all values 
     Select * From My_Table t Where t.State = 'A'; 

 


    Cursor My_Other_Cur Is 
     ... Gets data by condition 
     From My_Table t 
     Where t.State = 'A' 
      And (t.Candy_Lovers = s_Candy 
      Or t.Cake_Lovers = s_Cake 
      Or t.Popcorn_Lovers = s_Popcorn); 

 


    For i In My_Unified_Cur Loop 
     ... do stuff 
    End Loop; 

+0

...私はそれが – plainAF

+1

が次にあなたが聴衆への参照のためにそれを得たものを投稿するソートだと思います。 – XING

+0

私の答えは以下のとおりです。私がなぜ落選したのか分からない。人々は少しリラックスしている必要があります。 – plainAF

答えて

1

ソリューションは、労働組合へのすべての2つのカーソルであり、また ある

s_All_Id
を経由してそれらを調整グローバル変数。

 

    s_Candy Varchar2(5); 
    s_Cake Varchar2(5); 
    s_Popcorn Varchar2(5); 
    s_All_Id Varchar2(1) := 'N'; 

 

    If s_Candy Is Null And s_Cake Is Null And s_Popcorn Is Null Then 
     s_All_Id := 'Y'; 
    End If; 

 

    Cursor My_All_Cur Is 
     Select * 
      From My_Table t 
      Where s_All_Id = 'Y' 
      And t.State = 'A' 
     Union All 
     Select * 
      From My_Table t 
      Where s_All_Id = 'N' 
       And t.State = 'A' 
       And (t.Candy_Lovers = s_Candy 
       Or t.Cake_Lovers = s_Cake 
       Or t.Popcorn_Lovers = s_Popcorn); 

関連する問題