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

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

صورة
- - - - -

مشكلة فى كود Pl


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

#1 محمود شومان

محمود شومان

    عضو

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

تاريخ المشاركة 07 November 2008 - 06:10 PM

declare
linecount number:=&n;
v varchar2(20);
n number:=0;


begin for lineno in 1..linecount loop
for sp in 1..linecount-lineno loop
v:=v||'_';
end loop;
n:=lineno;
for st in 1..2*lineno-1 loop
if st <lineno then
v:=v||n;
n:=n-1;
else
v:=v||n;
n:=n+1;
end if;
end loop;
dbms_output.put_line(v);
v:='';
end loop;
end ;
/


#2 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 07 November 2008 - 08:52 PM

خطاء ال ORA-06502 يدل على أنك قمت بوضع قيمة فى التنفيذ تخلف عن ال data type المعربه فى ال Declaration ، أو أنها تزيد عن حجمه .
قم بالأطلاع على هذا الرابط لزيادة الوضوح >>>>> أضغط هنا
-------------------
لحل المشكلة .... فقط قم بتكبير حجم المتغير الثانى .... حوله من
v varchar2(20);
الى
v varchar2(2000);

أى يكون هكذا :-

DECLARE
linecount NUMBER := &n;
v VARCHAR2 (2000);
n NUMBER := 0;
BEGIN FOR lineno IN 1 .. linecount
LOOP
FOR sp IN 1 .. linecount - lineno
LOOP
v := v || '_';
END LOOP;
n := lineno;
FOR st IN 1 .. 2 * lineno - 1
LOOP
IF st < lineno
THEN
v := v || n;
n := n - 1;
ELSE
v := v || n;
n := n + 1;
END IF;
END LOOP;
DBMS_OUTPUT.put_line (v);
v := '';
END LOOP;
END;
/


و بالتوفيق

#3 محمود شومان

محمود شومان

    عضو

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

تاريخ المشاركة 08 November 2008 - 03:00 PM

بارك اللة فيك يا استاذى العزيز هانى
فعلا دة الحل المثالى
وشكرا ليك على ردك