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

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

صورة
- - - - -

مساعدة فى : Package and Triggers


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

#16 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 28 June 2009 - 09:27 AM

معذرة على عدم المشاركة والتفاعل اليومين اللي فاتوا
بس حقيقة انا باخد اجازة من اوراكل جمعة وسبت بقاللي حوالي سنتين بعمل كده ، وبزعل جدا حتى لما يكون عندي اضافي يوم الجمعة او السبت
ما علينا
اولا : جزاكم الله خيرا يا اخي مصطفى
ثانيا :الاخ Ricardo Quaresma
- ميه ميه التفاعل ومحاولة الحل ، كده نقول ان الموضوع اتى بثماره انه مش مجرد حل اسئلة وخلاص ، لا ده تفاعل ومشاركة ومناقشة وهكذا
- شكرأ... لايضاح الكلمات ، بس هم لازم يعقدوا الامتحان كده من الاول ، ما يكتبوا جدول ، وفانكش ، وكده يعني من الاول :unsure:
- سؤال بأه الحل اللي انت كاتبه ده ... انت عايزنا نبص عليه ، ولا انت بتشارك بالحل الصحيح عشان الناس كلها تستفاد ، على العموم جاري القراءة ...ولنا عودة ان شاء الله
قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم

#17 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 28 June 2009 - 10:56 AM

اخي لا افهم معنى اللوب الموجود في البروسجر printTab ايه فايدته ؟؟؟
تاني حاجة انت ليه عامل البروسجر printTab بـ dbms_sql.excute ، ليه مش كيرسور عادي او جملة سلكتايه مباشرة ؟؟

انا بس ده ملاحظتى حتى الان ,,, لسه في مرحلة قرأة البكتج ولنا عودة ان شاء الله
قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم

#18 Ricardo Quaresma

Ricardo Quaresma

    عضو

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

تاريخ المشاركة 28 June 2009 - 11:44 AM

الأخ عبد الله المحترم .. السلام عليكم .
بالنسبة للـ Procedure Print Tab فهاد السؤال سؤال دورة وكان مطلوب الحل بهذه الطريقة
بإمكانك استخدام الطريقة التي تفضلها أخ عبد الله .
بس نحنا الدكاترة عنا دائما بحبو يستخدمو الأسلوب الصعب .
المشكلة انو الإعطاء شبه عادي والأسئلة متل مو شايف والوقت طبعا غير كافي لحل الأسئلة .

أنا آسف لإني تأخرت بالرد بس ما انتبهت للردود غير اليوم والله .
وشكرا كتير عتعاونك أخ عبد الله .
سلامي لك .




#19 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 28 June 2009 - 12:39 PM

افهم من المثال بتاع حضرتك ان جدول برمجي مقصود بيه TABLE OF ROW
مش physical table ??
اوك ..... هبدأ عمل البكتج حالا ، معلش لاني كنت مشغول شوية
الله المستعان
قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم

#20 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 28 June 2009 - 02:32 PM

علش واضح انك حظك معايا بأه مش حلو ... معلش انشغلت في الشغل ... هتأخر عليك
بس عندي سؤال بسيط ان امكن
في السؤال الرابع اول نقطة ، هو بيقول اجرائية يمرر لها سجل ، المقصود بيها بروسجر ببراميتر ولا بروسجر ومن جوه هنباصي بكيرسور من جوه البروسجر ، اصل المثال اللي حضرتك حاطه من غير براميتر ، برجاء الاجابة وانتظر بأه الرد على حسب تساهيل ربنا في الشغل ، والله اتضغطت مرة واحدة
سلام عليكم
قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم

#21 Ricardo Quaresma

Ricardo Quaresma

    عضو

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

تاريخ المشاركة 28 June 2009 - 04:46 PM

علش واضح انك حظك معايا بأه مش حلو ... معلش انشغلت في الشغل ... هتأخر عليك
بس عندي سؤال بسيط ان امكن
في السؤال الرابع اول نقطة ، هو بيقول اجرائية يمرر لها سجل ، المقصود بيها بروسجر ببراميتر ولا بروسجر ومن جوه هنباصي بكيرسور من جوه البروسجر ، اصل المثال اللي حضرتك حاطه من غير براميتر ، برجاء الاجابة وانتظر بأه الرد على حسب تساهيل ربنا في الشغل ، والله اتضغطت مرة واحدة
سلام عليكم


السلام عليكم أخ عبد الله ..
بالنسبة للسؤال الرابع أول فقرة فهوة بيقصد بروسيجر بباراميتر متل ما تفضلت حضرتك ..
بالنسبة للأسئلة فخود راحتك والله يعطيك العافية حليت جزء مهم بالنسبة لإلنا
سلامي الك أخي عبد الله .

#22 Ricardo Quaresma

Ricardo Quaresma

    عضو

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

تاريخ المشاركة 28 June 2009 - 04:56 PM

افهم من المثال بتاع حضرتك ان جدول برمجي مقصود بيه TABLE OF ROW
مش physical table ??
اوك ..... هبدأ عمل البكتج حالا ، معلش لاني كنت مشغول شوية
الله المستعان


بالنسبة للـجدول البرمجي فمتل ما تفضلت حضرتك " بس بتعرف المصطلحات العربية " .
تعبناك معانا .. الله يجزيك الخير عنا أجمعين .
سلام أخ عبد الله .

#23 Ricardo Quaresma

Ricardo Quaresma

    عضو

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

تاريخ المشاركة 02 July 2009 - 10:44 AM

أخ عبد الله .. كيف أحوالك
اختفيت ولا كيف ......... طمنا عنك ؟

#24 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 02 July 2009 - 11:18 AM

الحمد لله كويس ... لا مختفتش ولا حاجة
بس انشغلت .. انت عارف ظروف الشغل مش بأيدك
انا بحاول يدوبك اخش على المنتدى لو فيه حاجة في السريع واقدر ارد برد
بس ان شاء الله احاول اخلص لك الامتحان ، او حد من الاخوة يدوش معانا ويساعد
كنت اتمنى اكون فاضي عن كده عشان انجز لك الامتحان ، ولكن قدر الله وماشاء فعل
ادعلنا انت بس والله المستعان
قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم

#25 Ricardo Quaresma

Ricardo Quaresma

    عضو

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

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

ولا يهمك أخ عبد الله بالتوفيق يا رب والله يعطيك العافية وسلامي لإلك

#26 abdu1_far

abdu1_far

    عضو نشط

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

تاريخ المشاركة 09 July 2009 - 11:41 AM

أولاً : انا بأعتذر عن التأخير ، بس صدقاً ظروف الشغل بأه
ثانياً : انا كنت جاي النهارده وعارف ان الشغل خفيف وواخد قرار اني اخلص الامتحان ، بس واضح كده ان الدنيا بدأت تزنق تاني في الشغل ، انا كنت ناوي اخلص السؤال الثالث والرابع وابعتهم ، لكن فعلا لاني حاسس اني مش متحكم في وقتي وكمان مش عارف هكون فاضي باقي اليوم ولا لأ ، انا خلصت السؤال الرابع كله وقولت ابعتهولك عشان ما تتعطلش اكتر من كده ، ولو ربنا قدرني وكان فيه وقت ولحقت اخلص الثالث النهارده هبعته
ده البكتج المطلوبة .... بس ياريت تتأكد منها ، انا جربتها كلها والحمد لله تمام ، بس برضه اتأكد

CREATE OR REPLACE PACKAGE sql_pkg
IS
TYPE invdtls_rec IS RECORD (
invid invdtls.invid%TYPE,
prdid invdtls.prdid%TYPE,
unitprice invdtls.unitprice%TYPE,
qntity invdtls.qntity%TYPE,
discntd invdtls.discntd%TYPE
);

TYPE invdtls_tab IS TABLE OF invdtls_rec
INDEX BY BINARY_INTEGER;

PROCEDURE insert_invdtl_rec (p_rec invdtls_rec);

PROCEDURE trans_data (p_invid invdtls.invid%TYPE);

FUNCTION get_total_bill (p_invid NUMBER)
RETURN NUMBER;

PROCEDURE print_inv_inf;
END sql_pkg;
/


********************************************************************************
**********************************************

وده الBODY


CREATE OR REPLACE PACKAGE BODY sql_pkg
IS
inv_tbl invdtls_tab;

PROCEDURE insert_invdtl_rec (p_rec invdtls_rec)
IS
v_rec invdtls_rec;
BEGIN v_rec.invid := p_rec.invid;
v_rec.prdid := p_rec.prdid;
v_rec.unitprice := p_rec.unitprice;
v_rec.qntity := p_rec.qntity;
v_rec.discntd := p_rec.discntd;
inv_tbl (v_rec.invid) := v_rec;
END insert_invdtl_rec;

--************************************************************
PROCEDURE trans_data (p_invid invdtls.invid%TYPE)
IS
BEGIN IF inv_tbl.EXISTS (p_invid)
THEN
INSERT INTO invdtls VALUES (inv_tbl (p_invid).invid, inv_tbl (p_invid).prdid,
inv_tbl (p_invid).unitprice, inv_tbl (p_invid).qntity,
inv_tbl (p_invid).discntd);

inv_tbl.DELETE (p_invid);
ELSE
DBMS_OUTPUT.put_line ('NO INVID MATCH YOUR ASSIGN PARAMETER');
END IF;
END trans_data;

--*******************************************************************
FUNCTION get_total_bill (p_invid NUMBER)
RETURN NUMBER
IS
v_total NUMBER;
BEGIN IF p_invid IS NULL
THEN
RETURN NULL;
END IF;

SELECT SUM (ID.unitprice * ID.qntity) - SUM (i.discntv + ID.discntd)
INTO v_total FROM invdtls ID, invoices i
WHERE ID.invid = i.invid AND i.invid = p_invid;

RETURN (v_total);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END get_total_bill;

--**************************************************************
PROCEDURE print_inv_inf
IS
CURSOR inv_cur
IS
SELECT i.invid, i.invdate, i.state
FROM invoices i;

CURSOR invdt_cur (v_invid invoices.invid%TYPE)
IS
SELECT p.prodname, (ID.qntity * ID.unitprice) quntity_price
FROM invdtls ID, prdcts p
WHERE ID.prdid = p.prdid AND ID.invid = v_invid;

v_inv_price NUMBER := 0;
v_total NUMBER := 0;
BEGIN FOR n IN inv_cur
LOOP
DBMS_OUTPUT.put_line
('........................................................');
DBMS_OUTPUT.put_line ( 'INVID: '
|| n.invid
|| ' INVDATE: '
|| n.invdate
|| ' INV STATE : '
|| n.state
);
DBMS_OUTPUT.put_line
('---------------------------------------------------------');

FOR i IN invdt_cur (n.invid)
LOOP
v_inv_price := v_inv_price + i.quntity_price;
DBMS_OUTPUT.put_line ( 'PRODNAME: '
|| i.prodname
|| ' QUNTITY_PRICE: '
|| i.quntity_price
);
END LOOP;

DBMS_OUTPUT.put_line
('........................................................');
DBMS_OUTPUT.put_line ( ' TOTAL PRICE OF INVOICE NUMBER '
|| n.invid
|| ' = '
|| v_inv_price
);

IF n.state = 'IN'
THEN
v_total := v_total - v_inv_price;
ELSE
v_total := v_total + v_inv_price;
END IF;

v_inv_price := 0;
END LOOP;

DBMS_OUTPUT.put_line
('........................................................');
DBMS_OUTPUT.put_line (' TOTAL PRICE = ' || v_total);
END print_inv_inf;
END sql_pkg;
/

تم التعديل بواسطة abdu1_far, 09 July 2009 - 11:43 AM.

قال رسول الله صلى الله عليه وسلم "إن لله عز وجل عباداً أختصهم بقضاء حوائج الناس ، حببهم إلي الخير وحبب الخير إليهم
هم الاّمنون من عذاب الله يوم القيامة " أوكما قال صلى الله عليه وسلم