بتاريخ: 7 نوفمبر 200817 سنة comment_142493 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 ; / تقديم بلاغ
بتاريخ: 7 نوفمبر 200817 سنة comment_142506 خطاء ال 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; / و بالتوفيق تقديم بلاغ
بتاريخ: 8 نوفمبر 200817 سنة كاتب الموضوع comment_142560 بارك اللة فيك يا استاذى العزيز هانىفعلا دة الحل المثالىوشكرا ليك على ردك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.