0
Bir dizede oluşturulmuş dinamik bir SQL sorgum var. Prosedür bir 'REF CURSOR' döndürmelidir.PLSQL - İmleç, dinamik sql olarak kullanılamaz
Sorgu için imleci açmaya çalıştığımda PLS-00455 hatasını alıyorum.
İşte
CURSOR cu_SiteList IS
SELECT SEC_NN.SRV_ID
,SEC_NN.SRV_NAME
,SEC_NN.SRV_COMTYP_CODE
FROM SEC_NN
,COM_SITE_STATE_T
WHERE SEC_NN.SRV_COMTYP_CODE <> 1
AND SEC_NN.SRV_ID = 2;
TYPE SITE_LIST_TYP IS REF CURSOR RETURN cu_SiteList%ROWTYPE;
İmleç tanımı sorgusu:
p_SiteList SITE_LIST_TYP;
lv_QueryStr := ' SELECT SEC_NN.SRV_ID ' ||
' ,SEC_NN.SRV_NAME ' ||
' ,SEC_NN.SRV_COMTYP_CODE ' ||
' FROM SEC_NN_, ' ||
' COM_SITE_STATE_T ' ||
' WHERE SEC_NN.SRV_COMTYP_CODE <> 1 ' ||
' AND SEC_NN.SRV_MODE_CODE = 2' ||
' AND SEC_NN.SRV_ID = COM_SITE_STATE_T.SRV_ID';
OPEN p_SiteList FOR lv_QueryStr;
Eğer sadece bu yüzden bir Rowtype olan bir imleç oluşturma SEC_NN tablodan 3 sütunlarını kullanabilirsiniz görebileceğiniz gibi tüm masa benim için çalışmayacak. Bunu nasıl aşabilirsiniz? Şimdiden teşekkürler. Ben çalıştığımda sözlerinden
çizgiyi
değiştirerek, bir 'zayıf' ref imleç olarak göstericiyi bildirmek için 'hatası alıyorum imleci aç. ** Hangi hata? ** Lütfen imleci açan kodu ve aldığınız hata mesajını içerecek şekilde kodunuzu düzenleyin. –
Olası yinelenen [Neden dinamik SQL deyimiyle güçlü bir ref imleç kullanamıyoruz?] (Http://stackoverflow.com/questions/2783461/why-cant-we-use-strong-ref-cursor-with-dynamic -sql-statement) –
@LukeWoodward, sanmıyorum, bu yazıyı daha önce gördüm, bu da imlecimin yapılandırılma şeklidir. Orijinal gönderi güncellendi. –