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

مشكله فى Dbms_output.put_line


mostfa_future

Recommended Posts

السلام على من اتبع الهدى


انا عندى مش كله انى معظم اومر الطباعه الى بتزيد عن 3 او 4 اسطر مش بتشغل
علما انى بشتغل من تحت Internet Explore
لو فى طر يقا تجعلنى اكتر اكتر عدد الصفوف يارت حد يقولى
فى كود مفروض يطبع حوالى 80 سطر
SET SERVEROUTPUT ON

DECLARE
TYPE dept_table_type IS TABLE OF
departments.department_name%TYPE
INDEX BY PLS_INTEGER;
my_dept_table dept_table_type ;
loop_count NUMBER := 0;
deptno NUMBER ;
BEGIN FOR i IN 1..100
LOOP
if MOD(i,10)=0 then
SELECT department_name INTO my_dept_table (i) FROM departments WHERE DEPARTMENT_ID = i ;
end if;
loop_count :=loop_count+1;
END LOOP;
exception
when no_data_found then DBMS_OUTPUT.PUT_LINE('end of data') ;

FOR i IN 1..loop_count
loop

DBMS_OUTPUT.PUT_LINE('department name = '||my_dept_table(i)) ;

END LOOP;
end ;


الناتج بيكون
PL/SQL procedure successfully completed.
وجزاكم الله خير

رابط هذا التعليق
شارك

السلام عليكم
المشكله ملهاش علاقه بعدد الصفوف والكود بتاعك شغال بس بتغير بسيط وتزود جمله ال if عند الطباعه زي ماشرح الاخ امجد قبل كده الكود
والكود ده بيطبع 10صفوف وشغال

DECLARE
TYPE dept_table_type IS TABLE OF
departments.department_name%TYPE
INDEX BY PLS_INTEGER;
my_dept_table dept_table_type ;
loop_count NUMBER := 0;
deptno NUMBER ;
BEGIN FOR i IN 1..100
LOOP
if MOD(i,10)=0 then
SELECT department_name INTO my_dept_table (i) FROM departments WHERE DEPARTMENT_ID = i ;
end if;
loop_count :=loop_count+1;
END LOOP;


FOR i IN 1..loop_count

LOOP
if Mod(i,10) =0 then
DBMS_OUTPUT.PUT_LINE('department name = '||my_dept_table(i)) ;
end if;
END LOOP;
exception
when no_data_found then DBMS_OUTPUT.PUT_LINE('end of data') ;
end ;




وده كود بيطبع 100 صف وشغال برده

SET SERVEROUTPUT ON DECLARE
  TYPE emp_table_type IS TABLE OF
     employees%ROWTYPE INDEX BY PLS_INTEGER;
  my_emp_table  emp_table_type;
  max_count         NUMBER(3):= 200; 
BEGIN FOR i IN 100..max_count
 LOOP
  SELECT * INTO my_emp_table(i) FROM employees
  WHERE employee_id = i;
 END LOOP;
 FOR i IN my_emp_table.FIRST..my_emp_table.LAST 
 LOOP
    DBMS_OUTPUT.PUT_LINE(my_emp_table(i).last_name);
 END LOOP;
END;

تم تعديل بواسطة sara gamal
رابط هذا التعليق
شارك

انا عرف ان الكود شغال بس المشكله فى
انى معظم اومر الطباعه الى بتزيد عن 3 او 4 اسطر مش بتشغل
علما انى بشتغل من تحت Internet Explore
لو فى طر يقا تجعلنى اكتر اكتر عدد الصفوف يارت حد يقولى

رابط هذا التعليق
شارك

الكودبتاعك مش بيخرج error بس مش شغال ولما بنعدل حاجات بسيطه فيه بيشتغل وبيطبع 10صفوف
يقى المشكله مش في امر الطباعه خالص
وعشان كده بقولك جرب المثال التانى الوضعته دا مفروض بيطبع 100سطر
ومجرباه وشغال ولو اشتغل عندك يبقى المشكله مش في امر الطباعه زي ماقلتك
على فكره انا برده بجرب على Internet Explore زيك

تم تعديل بواسطة sara gamal
رابط هذا التعليق
شارك

يا اخ mostfa_future انا عندي حل بس قبل ما اضع هذا الحل محتاج اعرف منك حاجه لو امكن

انت بتقول انو الكود شغال ولكن هنالك بعض الصفوف لا يطبعها . إذن في هذه الحالة المفروض يكون في رسالة خطئ ناتجه من عدم هذه الطباعه

ممكن توريني رسالة الخطئ

وارجو منك حاجه تانية كمان :

روح على start -> run -> cmd

بعدي كذا اكتب : sqlplus /nolog

بعد كذا : conn hr/yourpass

واكتب الامر التالي :

set serveroutput on

ونفذ الكود الي مسببلك مشكله

ووريني رسالة الخطئ

وكل مشكلة ولها حل بإذن الله ومستني منك الرد

رابط هذا التعليق
شارك

معنديش ايرور معين الناتج بيقى عندى كده PL/SQL procedure successfully completed
خد الكود عندك وجربه لو طبع يبقى فى مشكله عندى لان الاخت سار بتقول ان الكود ولا بييطلع ايرور ولا بيطبع
الكود

ال كود

SET SERVEROUTPUT ON DECLARE
TYPE dept_table_type IS TABLE OF
departments.department_name%TYPE
INDEX BY PLS_INTEGER;
my_dept_table dept_table_type ;
loop_count NUMBER := 0;
deptno NUMBER ;
BEGIN FOR i IN 1..100
LOOP
if MOD(i,10)=0 then
SELECT department_name INTO my_dept_table (i) FROM departments WHERE DEPARTMENT_ID = i ;
end if;
loop_count :=loop_count+1;
END LOOP;
exception
when no_data_found then DBMS_OUTPUT.PUT_LINE('end of data') ;

FOR i IN 1..loop_count
loop

DBMS_OUTPUT.PUT_LINE('department name = '||my_dept_table(i)) ;

END LOOP;
end ;

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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