الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيفيت وضع متغير في جملة الكيرسول

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله

أصدقائي اريد وضع متغير في جملة الكيرسول بعد where يحنوي على متغيرات وجمل شرطية لاكن كما تعلمون لايمكن وضع جمل شرطية قبل begin وفي نفس الوقة لايمكن وضع جملة الكيرسول بعد begin وإيكم الكود

declare
   xsql	varchar(200);
	
	if :cont.bra_name is null then
				xsql:= xsql||'and 1=1';
	else xsql:='bra_name like''%'||:cont.bra_name||'%''';
	end if;
	
	if :cont.bra_id is null then
			xsql:= xsql||'and 1=1';
	else xsql:='bra_id ='||:bra_id;
	end if;
	
	
	cursor se is select bra_id,bra_name from brands where xsql;
	begin

open se;
loop
fetch se into
:brands.bra_id,
:brands.bra_name,
exit when se%notfound;
next_record;
end loop;
close se;
go_block('cont');

end;

وبارك الله فيكم

 

بتاريخ:

إستخدم REF_CURSOR أو Cursor with parameters

لو الأمر غير واضح قول

بتاريخ:
  • كاتب الموضوع

الأمر غير واضح انا لسة صغير في اوريكل ارجو توضيح Cursor with parameters

و REF_CURSOR

بكود

وبارك الله فيك

بتاريخ:

طيب خيرا ان شاء الله

Cursor with parameters هي عبارة عن Cursor جدا ولكن تعمل اعتمادا علي parameters 

طريقة تعريفها زي تعريف Cursor العادية مع اضافة الاقواس لتحديد الـ parameters

CURSOR cursor_name(parameter_name datatype, parameter_name datatype, .....)
IS
select_statement;

مثال:

SET SERVEROUTPUT ON
DECLARE
    CURSOR EmpForDeptCur (pDeptNo NUMBER) IS
    SELECT Employee_id, First_name || ' ' || Last_name
    FROM employees
    WHERE Department_id = pDeptNo;
    
    EmployeeNum     NUMBER(3);
    EmployeeName    VARCHAR2(100); 
BEGIN
    OPEN EmpForDeptCur (50);
        LOOP
            FETCH  EmpForDeptCur 
            INTO     EmployeeNum,
                          EmployeeName;
                         
            DBMS_OUTPUT.PUT_LINE(EmployeeNum || ' ' || EmployeeName);
            EXIT WHEN EmpForDeptCur%NOTFOUND;
        END LOOP;
        
       CLOSE EmpForDeptCur;

END;
   

أما الـ  REF_CURSOR فهي عبارة عن Cursor علي شكل  Variable تستخدم لتكوين Result set اي مجموعة من الـ Rows

الـ Cursor العادية تعرف الـ Select statement فيها ثم تستخدمها بينما Ref Cursor يتم تعرفها بشكل عام كمتغير ثم فتحها وتحديد الـ  Select statement في نفس الوقت وهو ما تود بظبط فعله انت

مثال:

SET SERVEROUTPUT ON
DECLARE
    TYPE EmpForDeptCur IS REF CURSOR;
    
    MyRefCurVar    EmpForDeptCur;
    
    EmployeeNum     NUMBER(3);
    EmployeeName    VARCHAR2(100); 
BEGIN
    OPEN MyRefCurVar FOR SELECT Employee_id, First_name || ' ' || Last_name
                                             FROM Employees
                                             WHERE Department_id = 50; 
     LOOP
            FETCH  MyRefCurVar
            INTO     EmployeeNum,
                          EmployeeName;
                         
            DBMS_OUTPUT.PUT_LINE(EmployeeNum || ' ' || EmployeeName);
            EXIT WHEN MyRefCurVar%NOTFOUND;
     END LOOP;
     
     CLOSE MyRefCurVar;
END;
بتاريخ:
  • كاتب الموضوع

تعجز اصابعي عن كتابة كلمات الشكرلك اخي repotec

بارك الله فيك وجزاك عنا الف خير

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.