عبدالرحمن رسام بتاريخ: 16 أغسطس 2006 تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2006 (معدل) اريد اعمل viewيطالب بادخال القيمة كلما قمة باستدعائه بعد الانشاء مثلاً لوانشائة viewمن جدول الموظفين وذالك من خلال رقم الموظف واسم الموظف بشرط where empno=&no واريد بعد الانشاء كلماء استدعيت الview يطلب ادخال الرقمرجو المساعده لحل لهذا او ماهو البديل تم تعديل 16 أغسطس 2006 بواسطة عبدالرحمن رسام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالرحمن رسام بتاريخ: 16 أغسطس 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2006 الاخ اسامة الاخوة الاعضاء اريد الرد ضروري شاكر تعاونكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 16 أغسطس 2006 تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2006 لم اسمع بطريقه مباشره لعمل ذلك ولكن يمكنك ذلك طريق الرزم PACKAGE انشئ رزمه بها متغير و بروسيدجورال و فانكشن CREATE OR REPLACE PACKAGE testx AS x number; PROCEDURE set_x ( z number); function get_x return number; END testx; / CREATE OR REPLACE PACKAGE BODY testx IS PROCEDURE set_x( z number) is begin x := z; end; function get_x return number IS begin return x; END; END; / ثم انشئ الفيو عادي وفي جملة الشرط where empno=testx.get_xوقبل تشغيل الفيو يجب ارسال المتغير عن طريق begin testx.set_x(11); end; وبتغير القيمه 11 تحصل علي نتائج متغيره ويلاحظ هنا ان المتغير الخاص بالرزمه يتم التعامل معه علي مستوي جلسة العمل فقط بمعني لو ان هناك اكثر من مستخدم يريدون التعامل معه يمكن ذلك مع تمنياتي بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالرحمن رسام بتاريخ: 16 أغسطس 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2006 (معدل) استاذي العزيز عبدالله اشكرك شكر من اعماق قلبي على تفضلك بلرد وجزاك الله خيراً وكثر الله من امثالك يا استاذيلكن ارجو منكم المزيد من التوضيح وخاصة اخر كود؟وهل يصح استخدامة مع حقل التاريخ اذا كان هو في الشرط ويطلب بين تاريخين؟datee between a and b تم تعديل 16 أغسطس 2006 بواسطة عبدالرحمن رسام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 17 أغسطس 2006 تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2006 يمكنك استخدامه في حالة تاريخين بزياده عدد المتغيرات في الرزمه و فنكشن جديده و بروسيدجورال جديده للمتغير الجديد الفكره بسهوله هيا تخزين قيمة في متغير بالرزمه و ذلك عن طريق اخر كود و استرجاعه في الفيو عن طريق الجمله الشرطيه جرب المثال الموضوح و ستفهم اكثر و هي شبيهه جدا بعمل جدول ووضع قيمه واحده فيه و في الجمله الشرطيه للفيو تتضع شرط ان الرقم يساوي الرقم الموجود بالجدول ولكن مشكلة هذه الطريقه هي انها لمستخدم واحد فقط اما الباكيدج فتخزن قيمة لكل جلسة عمل منفصله بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالرحمن رسام بتاريخ: 19 أغسطس 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 أغسطس 2006 (معدل) جربت المثال الذي اعطيته يا استاذي ولكن يحدث خطاء فما الحل لهذا الخطاء؟؟؟؟؟؟ارجو منك المساعدة CREATE OR REPLACE PACKAGE testx AS x number; PROCEDURE set_x( z number); function get_x return number; END testx; / CREATE OR REPLACE PACKAGE BODY testx IS PROCEDURE set_x( z number) is begin x := z; end; function get_x return number IS begin return x; END; END; / ---------------------------------- SQL> create view aa as(select * from emp 2 where empno=testx.get_x); where empno=testx.get_x) * ERROR at line 2: ORA-06571: Function GET_X does not guarantee not to update database تم تعديل 19 أغسطس 2006 بواسطة عبدالرحمن رسام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالله ندا بتاريخ: 20 أغسطس 2006 تقديم بلاغ مشاركة بتاريخ: 20 أغسطس 2006 انا جربت المثال ده وشغال CREATE OR REPLACE VIEW testq ( f_id, f_name ) AS SELECT a.f_id, a.f_name FROM test1 a where a.f_id=testx.get_x / اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبدالرحمن رسام بتاريخ: 21 أغسطس 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 21 أغسطس 2006 الشهم شهم والكريم تعرفه يغرقك بكرمةشكراً لك استاذي العزيز اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.