a_m2 بتاريخ: 2 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 2 مارس 2007 ممكن اى واحد يتكرم ويقولى ايه الفرق الذى سيحدث عند استخدام الاتى مع الحزمه DBMS_OUTPUT1/ PUT2/ PUT_LINE3/NEW_LINE4/ GET_LINE5/ GET_LINESلقد حاولت ان افهم الفرق بينهم من خلال الشرح الموجود معى ولكن لم استطع وحاولت ادخالهم فى اكواد لاعرف الفرق وايضا لم افلحفارجوا ممن يعرف فائدة كل من هؤلاء ان يشرح لى وله جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 3 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 3 مارس 2007 أرفقت لك صورة توضح الوظائف بصفة عامة لهذه البكج و فيما يلى سوف أوضح لك بالاكواد SET SERVEROUTPUT ON BEGIN DBMS_OUTPUT.PUT_LINE('These are the tables that ' || USER || ' owns:'); FOR item IN (SELECT table_name FROM user_tables) LOOP DBMS_OUTPUT.PUT_LINE(item.table_name); END LOOP; END; / و أيضاً هذا المثال :- SET SERVEROUTPUT ON FORMAT WRAPPED DECLARE new_sal NUMBER(8,2); emp_id NUMBER(6) := 126; PROCEDURE adjust_salary(emp_id NUMBER, sal IN OUT NUMBER) IS emp_job VARCHAR2(10); avg_sal NUMBER(8,2); BEGIN SELECT job_id INTO emp_job FROM employees WHERE employee_id = emp_id; SELECT AVG(salary) INTO avg_sal FROM employees WHERE job_id = emp_job; DBMS_OUTPUT.PUT_LINE ('The average salary for ' || emp_job || ' employees: ' || TO_CHAR(avg_sal)); sal := (sal + avg_sal)/2; -- adjust sal value which is returned END; BEGIN SELECT AVG(salary) INTO new_sal FROM employees; DBMS_OUTPUT.PUT_LINE ('The average salary for all employees: ' || TO_CHAR(new_sal)); adjust_salary(emp_id, new_sal); -- assigns a new value to new_sal DBMS_OUTPUT.PUT_LINE ('The adjusted salary for employee ' || TO_CHAR(emp_id) || ' is ' || TO_CHAR(new_sal)); -- sal has new value END; / و أتمنى أن أكون قد أوضحت ما كنت تريده ..... وبالتوفيق أن شاء الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
a_m2 بتاريخ: 3 مارس 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 3 مارس 2007 الاخ العزيز hanyfreedom لم تذكر فيها غير الداله put_line فاين باقى الامثله على باقى الدوالل ايها الاخ العزيز اين داله put and new_line واين دالة get_line and get_ linesعموما اخى الفاضل اليك ما فهمته عله يفيدك اولا دالة put تستخدم للحصول على الناتج ونخزينه فى الذاكره المؤقته دون طباعته2/ put_line لطباعة الناتج كل كيرسر على سطر وأيضا إذا اتت خلف dbms_output.put فإنها تقوم بطباعة ناتج هذه الحزمة والمخزن في الذاكرة المؤقتة ولكن تطبع على نفس السطر اى يكون الناتج كله على سطر واحد3/ new_line فهي تأتى خلف dbms_output.put وتطبع الناتج لهذه الحزمة ولكن على سطر جديد4/ get_line تحضر صف واحد من الناتج5/get_lines تحضر صفوف الناتج كلها بعد ترتيبها 6/ ENABLE/DISABLE تستخدم لإيقاف عمل أو تشغيل الحزمة dbms_output ارجوا من الاخوه اصحاب الخبره والتفكير السليم ان يراجع ما كتبته وان كان ما فهمته فيه اى شئ خطأ ان ينبهنى لهوشكرا لك ايها الاخ hanyfreedom لا محاولتك واجتهادك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 6 مارس 2007 تقديم بلاغ مشاركة بتاريخ: 6 مارس 2007 *Plus SET SERVEROUTPUT ON in SQL*Plus is equivalent to: dbms_output.enable(buffer_size => NULL); DISABLE Disable DBMS_OUTPUT and reset the buffer size back to the default dbms_output.disable; BEGIN exec dbms_output.disable; END; / ENABLE Enable DBMS_OUTPUT and set the buffer size. The buffer size can be between 1 and 1,000,000 DBMS_OUTPUT.ENABLE(<buffer_size_integer> DEFAULT 20000); BEGIN dbms_output.enable(1000000); END; / GET_LINE Returns a single line of buffered information dbms_output.get_line( line OUT VARCHAR2, status OUT INTEGER); set serveroutput on DECLARE buffer VARCHAR2(100); status INTEGER; BEGIN dbms_output.put_line('This is'); dbms_output.put_line('a test.'); dbms_output.get_line(buffer, status); dbms_output.put_line('Buffer: ' || buffer); dbms_output.put_line('Status: ' || TO_CHAR(status)); END; / GET_LINES Retrieves an array of lines from the buffer dbms_output.get_lines( lines OUT CHARARR, numlines IN OUT INTEGER); DECLARE outtab dbms_output.CHARARR; a_line VARCHAR2(10) := RPAD('*',10,'*'); status INTEGER; lines CONSTANT NUMBER := 15; BEGIN outtab(0) := 'This is a test'; outtab(12) := 'of dbms_output.get_lines'; -- output 10 lines FOR linenum IN 1..10 LOOP dbms_output.put_line(a_line || TO_CHAR(linenum)); END LOOP; -- retrieve 15 lines status := lines; dbms_output.get_lines(outtab, status); dbms_output.put_line('Retrieved=' || status); FOR linenum IN 0 .. lines LOOP BEGIN dbms_output.put_line(linenum || ':' || NVL (outtab(linenum),'<null>')); EXCEPTION WHEN OTHERS THEN dbms_output.put_line(linenum || ':' || SQLERRM); END; END LOOP; EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Exception, status=' || status); dbms_output.put_line(SQLERRM); END; / NEW_LINE Inserts an end-of-line marker dbms_output.new_line; set serveroutput on BEGIN dbms_output.enable(9999999); dbms_output.new_line(); FOR rec IN (SELECT table_name FROM user_tables) LOOP dbms_output.put_line (rec.table_name); END LOOP; dbms_output.new_line(); END; / PUT Obsolete and no longer supported by Oracle PUT_LINE Output a literal dbms_output.put_line(item VARCHAR2); set serveroutput on BEGIN dbms_output.put_line('Display a string literal'); END; / Output a variable dbms_output.put_line(<item VARCHAR2); set serveroutput on size 1000000 format wrapped DECLARE x VARCHAR2(20) := RPAD('Dan Morgan', 199, 'x') BEGIN dbms_output.put_line(x); END; / Unlimited Output in 10gR2 dbms_output.get_lines(lines OUT DBMSOUTPUT_LINESARRAY, numlines IN OUT INTEGER); show serveroutput off show serveroutput set serveroutput on show serveroutput BEGIN FOR f IN (SELECT table_name FROM user_tables) LOOP dbms_output.put_line(f.table_name); END LOOP; END; / BEGIN FOR f IN (SELECT table_name FROM all_tables) LOOP dbms_output.put_line(f.table_name); END LOOP; END; / اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.