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

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

صورة
- - - - -

مشكله فى Dbms_output.put_line


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

#1 mostfa_future

mostfa_future

    عضو مميز

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

تاريخ المشاركة 18 December 2009 - 12:38 AM

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

انا عندى مش كله انى معظم اومر الطباعه الى بتزيد عن 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.
وجزاكم الله خير

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة


#2 sara gamal

sara gamal

    عضو نشط

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

تاريخ المشاركة 19 December 2009 - 06:48 PM

السلام عليكم
المشكله ملهاش علاقه بعدد الصفوف والكود بتاعك شغال بس بتغير بسيط وتزود جمله ال 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, 19 December 2009 - 06:51 PM.


#3 mostfa_future

mostfa_future

    عضو مميز

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

تاريخ المشاركة 19 December 2009 - 07:10 PM

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

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة


#4 sara gamal

sara gamal

    عضو نشط

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

تاريخ المشاركة 19 December 2009 - 08:55 PM

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

تم التعديل بواسطة sara gamal, 19 December 2009 - 08:56 PM.


#5 mostfa_future

mostfa_future

    عضو مميز

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

تاريخ المشاركة 19 December 2009 - 09:04 PM

شكرا جزاك الله خير

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة


#6 colla

colla

    عضو نشط

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

تاريخ المشاركة 19 December 2009 - 11:03 PM

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

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

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

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

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

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

بعد كذا : conn hr/yourpass

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

set serveroutput on

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

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

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

على المرء ان يسعى وليس عليه ادراك النجاح


صورة


#7 mostfa_future

mostfa_future

    عضو مميز

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

تاريخ المشاركة 20 December 2009 - 02:27 AM

معنديش ايرور معين الناتج بيقى عندى كده 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 ;

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة


#8 rachid_to_dba

rachid_to_dba

    مشترك

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

تاريخ المشاركة 20 December 2009 - 08:00 AM

السلام عليكم

بدي اعرف شو هو الكومند
اللي يخليني اشغل PL/SQL من خلال SQL*plus enviroment

thanks my friends


ان شاء الله ... باذن الله ... اكيد سنصل... يارب