2016-03-25 14 views
0

Depolanmış yordamı kullanarak tablodan birden çok satır almaya çalışıyorum ve bu benim için çalışmıyor. aşağıdaki gibi Benim saklı yordam ben Veritabanı konnektörü kullanılarak Katır Anypoint Studio'dan yordamını aramak için çalışıyorum ve bir kaydedici ile yük yazdırırken boş olarak sonucunu gördükDepolanmış yordamı kullanarak tablodan imleci kullanarak birden çok satır alınamıyor DB2

CREATE OR REPLACE PROCEDURE E_Enquiry 
    (IN SourceQueue1 VARCHAR(30)) LANGUAGE SQL 
BEGIN 
    DECLARE C1 CURSOR FOR 
     select CreationTime 
     from ms.Exception_Message 
     where SourceQueue = SourceQueue1; 

    open c1; 
END; 

vardır. Sorguyu tek bir satır döndürdüğünde değiştirmeye çalışırsam (imleci kullanmadan) çalışır.

Lütfen bu sorunu çözmek için yardım edin. Teşekkürler.

+0

Clockwork-Muse, beyan ve açılış imleç genellikle @:

ekleyerek

  • DİNAMİK SONUCU

böylece gibi MÜŞTERİ DÖNÜŞ İLE 1

  • TAKIMLARI deneyin Bir saklı yordamdan bir sonuç kümesini nasıl döndürür. Bunu bildiğini biliyorum, bu yüzden yorumunuz beni şaşırtıyor. – Charles

  • +0

    @Charles - aslında yapmadım. Bana öğrettiğin için teşekkürler! Sanırım işlevler ve zorunlu dilleri için biraz fazla kullanılmışım - daha önce gördüğüm örnekler açıkça bir imleç tipi döndürüyormuş gibi hissediyorum. –

    cevap

    2

    Hangi platform ve DB2 sürümü nedir?

    CREATE OR REPLACE PROCEDURE E_Enquiry 
        (IN SourceQueue1 VARCHAR(30)) 
    LANGUAGE SQL 
    DYNAMIC RESULT SETS 1 
    BEGIN 
        DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR 
         select CreationTime 
         from ms.Exception_Message 
         where SourceQueue = SourceQueue1; 
    
        open c1; 
    END; 
    
    +0

    Teşekkür ederim Charles. – mani24991

    +0

    @ mani24991 çalışıyor ve cevabı kabul edildi olarak işaretlemeyi unutmayın. – Charles