mostfa_future بتاريخ: 17 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 17 ديسمبر 2009 السلام على من اتبع الهدى انا عندى مش كله انى معظم اومر الطباعه الى بتزيد عن 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.وجزاكم الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 19 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 (معدل) السلام عليكم المشكله ملهاش علاقه بعدد الصفوف والكود بتاعك شغال بس بتغير بسيط وتزود جمله ال 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; تم تعديل 19 ديسمبر 2009 بواسطة sara gamal اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 19 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 انا عرف ان الكود شغال بس المشكله فى انى معظم اومر الطباعه الى بتزيد عن 3 او 4 اسطر مش بتشغلعلما انى بشتغل من تحت Internet Exploreلو فى طر يقا تجعلنى اكتر اكتر عدد الصفوف يارت حد يقولى اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sara gamal بتاريخ: 19 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 (معدل) الكودبتاعك مش بيخرج error بس مش شغال ولما بنعدل حاجات بسيطه فيه بيشتغل وبيطبع 10صفوف يقى المشكله مش في امر الطباعه خالص وعشان كده بقولك جرب المثال التانى الوضعته دا مفروض بيطبع 100سطر ومجرباه وشغال ولو اشتغل عندك يبقى المشكله مش في امر الطباعه زي ماقلتكعلى فكره انا برده بجرب على Internet Explore زيك تم تعديل 19 ديسمبر 2009 بواسطة sara gamal اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 19 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 شكرا جزاك الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
colla بتاريخ: 19 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 يا اخ mostfa_future انا عندي حل بس قبل ما اضع هذا الحل محتاج اعرف منك حاجه لو امكن انت بتقول انو الكود شغال ولكن هنالك بعض الصفوف لا يطبعها . إذن في هذه الحالة المفروض يكون في رسالة خطئ ناتجه من عدم هذه الطباعه ممكن توريني رسالة الخطئ وارجو منك حاجه تانية كمان : روح على start -> run -> cmdبعدي كذا اكتب : sqlplus /nologبعد كذا : conn hr/yourpassواكتب الامر التالي : set serveroutput onونفذ الكود الي مسببلك مشكله ووريني رسالة الخطئ وكل مشكلة ولها حل بإذن الله ومستني منك الرد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 19 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2009 معنديش ايرور معين الناتج بيقى عندى كده 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 ; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rachid_to_dba بتاريخ: 20 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 20 ديسمبر 2009 السلام عليكم بدي اعرف شو هو الكومنداللي يخليني اشغل PL/SQL من خلال SQL*plus enviromentthanks my friends اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.