إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

لغز أواكلي كيف يمكنك من procedure و عن طريق الsql


20 رد (ردود) على هذا الموضوع

#16 undo

undo

    مشترك

  • الأعضــاء
  • 86 مشاركة

تاريخ المشاركة 17 February 2005 - 12:06 PM

للرفع للمرة الأخيرة و سأضع الحل خلال يومين..

بالمناسبة.. احد اصدقائي استطاع حل اللغز :angry:

#17 mamado

mamado

    عضو

  • الأعضــاء
  • 46 مشاركة

تاريخ المشاركة 17 February 2005 - 01:44 PM

create or replace procedure print_all_emp
is
v_count number :=0;
v_id s_emp.id%type;
v_last_name s_emp.last_name%type;
begin
select count(*)
into v_count
from s_emp;
for i in 1..v_count loop
select id, last_name
into v_id, v_last_name
from s_emp
where id = i;
dbms_output.put_line(v_id ||'  '||v_last_name);
end loop;
end;
/

Al salam Alikom
i think that the first example that OSAMA mentioned is true
with the following changes

where rownum=i;

because rownum psuedocolumn add a sequence number to the result set of data

#18 alhomam

alhomam

    عضو نشط

  • الأعضــاء
  • 321 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 February 2005 - 09:43 PM

يا اخوان ال cursor وضعت حتى تحل المشكلة
وعدم استخدامها يضرنا الا استخدام الكثير من الكود
وهاد هو الفرق بين profissional والعادي

#19 louy-s

louy-s

    عضو

  • الأعضــاء
  • 30 مشاركة

تاريخ المشاركة 17 February 2005 - 11:44 PM

declare
v_empno emp.empno%type;
v_ename emp.ename%type;
v_min_empno emp.empno%type;
v_max_empno emp.empno%type;
begin
select min(empno),max(empno)
into v_min_empno,v_max_empno
from emp;
for i in v_min_empno..v_max_empno loop
begin
select empno,ename
into v_empno,v_ename
from emp
where empno=i;
dbms_output.put_line(v_empno||' '||v_ename);
exception
when no_data_found then null;
end;
end loop;
end;
:D



#20 louy-s

louy-s

    عضو

  • الأعضــاء
  • 30 مشاركة

تاريخ المشاركة 18 February 2005 - 03:37 PM

Al salam Alikom
i think that the first example that OSAMA mentioned is true
with the following changes

where rownum=i;

because rownum psuedocolumn add a sequence number to the result set of data


u can't use rownum=i

try this
select * from emp
where rownum=5

use rownum with <or <= and
try this
select * from emp where rownum<=4

تم التعديل بواسطة louy-s, 18 February 2005 - 10:37 PM.


#21 abu_kalid

abu_kalid

    عضو

  • الأعضــاء
  • 1 مشاركة

تاريخ المشاركة 23 November 2011 - 11:10 AM

والله اخى undo الحلول التالية تعتمد فعلا على الـ Cursor وقصدت بالمشاركة بها توضيح فوائد الـ Cursor وانصح كل الاخوة الاعضاء الذين لا يستخدمون الـ Cursor عليهم بالبحث فى موضوعه


يا اخوه المشاركون فعلا ماقاله الاخ اسامه سليمان . لابد من استخدام cursor اليوم او غدا لااهميته .