بتاريخ: 19 يوليو 201411 سنة comment_253006 انا عامل داله ومديلها PARAMETER INDEX BY TABLE وعامل لوب عليه المهم انا عاوز بعد ما اللوب يخلص اعمل CHECK على قيمه ال PARAMETER نفسه اذا كان ب NULL او لا تقديم بلاغ
بتاريخ: 31 يوليو 201411 سنة comment_253248 ممكن تفيد اخوانك وتشرح الطريقة التى قمت بها وجزاك الله خيرا تقديم بلاغ
بتاريخ: 9 أغسطس 201411 سنة كاتب الموضوع comment_253482 انا هاشرح انا عملت ايه علشان انت لما تدور هتستفاد انا عملت package وفيها عرفت index by table علشان اقدر امرر ال index by table as paramerter in procedure دا الجزء الصعب فيها او اللى انا مكنتش عارف ازاى امرر index by table as parameter وكملتها وروحت فى forms عرفت متغير من نوع ال package.index name وعملت الاتى DECLARE p_list_del G_TYP_TEST_PAK.item_tab; P_LIST_ITEM G_TYP_TEST_PAK.SUPP_ITEM_TAB; VAL NUMBER(5); L_LABEL VARCHAR2(30); L_VALUE VARCHAR2(30); L NUMBER :=0; J NUMBER:=0; BEGIN VAL:=GET_LIST_ELEMENT_COUNT('SUPP_ITEMS'); FOR I IN REVERSE 1..VAL LOOP IF :SUPP_ITEMS IS NOT NULL THEN L_VALUE:=GET_LIST_ELEMENT_VALUE('SUPP_ITEMS',I); L_LABEL:=GET_LIST_ELEMENT_LABEL('SUPP_items',I); if L_LABEL LIKE '%+%' then L:=L+1; P_LIST_ITEM(L).SUPP_ID:=:SUPPLIERS.SUPP_ID; P_LIST_ITEM(L).ITEM_ID:=L_VALUE; DELETE_LIST_ELEMENT('SUPP_ITEMS',I); ADD_LIST_ELEMENT('SUPP_ITEMS',I,SUBSTR(L_LABEL,1,LENGTH(L_LABEL)-3),L_VALUE); end if; IF L_LABEL LIKE '%-%' THEN J:=J+1; P_LIST_del(J).SUPP_ID:=:SUPPLIERS.SUPP_ID; P_LIST_del(J).ITEM_ID:=L_VALUE; DELETE_LIST_ELEMENT('SUPP_ITEMS',I); :SUPP_ITEMS:=GET_LIST_ELEMENT_VALUE('SUPP_ITEMS',I); END IF; ELSE NULL; END IF; END LOOP; IF p_list_del.COUNT>0 THEN test.supp_item_DEL(p_list_del); message('item deleted'); END IF; if p_list_item.COUNT>0 then TEST.SUPP_ITEM_INS( P_LIST_ITEM); message('item saved'); END IF; END; ودى صوره هتوضح اكتر تقديم بلاغ
بتاريخ: 9 أغسطس 201411 سنة كاتب الموضوع comment_253483 الظاهر فى مشكله مش عارف ارفع الصوره بيقولى العمليه فشلت هاشوف بردوا وارد عليك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.