عبداللطيف بتاريخ: 16 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 16 مارس 2004 tofeeeتحياتي لكم لكل يوم معلومة جديدة تفيدني وتفيدكم CREATE OR REPLACE PACKAGE random IS -- Returns random integer between [0, r-1] FUNCTION rndint(r IN NUMBER) RETURN NUMBER; -- Returns random real between [0, 1] FUNCTION rndflt RETURN NUMBER; END; / CREATE OR REPLACE PACKAGE BODY random IS m CONSTANT NUMBER:=100000000; /* initial conditions */ m1 CONSTANT NUMBER:=10000; /* (for best results) */ b CONSTANT NUMBER:=31415821; /* */ a NUMBER; /* seed */ the_date DATE; /* */ days NUMBER; /* for generating initial seed */ secs NUMBER; /* */ -- ------------------------ -- Private utility FUNCTION -- ------------------------ FUNCTION mult(p IN NUMBER, q IN NUMBER) RETURN NUMBER IS p1 NUMBER; p0 NUMBER; q1 NUMBER; q0 NUMBER; BEGIN p1:=TRUNC(p/m1); p0:=MOD(p,m1); q1:=TRUNC(q/m1); q0:=MOD(q,m1); RETURN(MOD((MOD(p0*q1+p1*q0,m1)*m1+p0*q0),m)); END; -- --------------------------------------- -- Returns random integer between [0, r-1] -- --------------------------------------- FUNCTION rndint (r IN NUMBER) RETURN NUMBER IS BEGIN -- Generate a random NUMBER, and set it to be the new seed a:=MOD(mult(a,+1,m); -- Convert it to integer between [0, r-1] and return it RETURN(TRUNC((TRUNC(a/m1)*r)/m1)); END; -- ---------------------------------- -- Returns random real between [0, 1] -- ---------------------------------- FUNCTION rndflt RETURN NUMBER IS BEGIN -- Generate a random NUMBER, and set it to be the new seed a:=MOD(mult(a,+1,m); RETURN(a/m); END; BEGIN -- Generate initial seed "a" based on system date the_date:=SYSDATE; days:=TO_NUMBER(TO_CHAR(the_date, 'J')); secs:=TO_NUMBER(TO_CHAR(the_date, 'SSSSS')); a:=days*24*3600+secs; END; / Method 2 - Produce random # between 0 to 32767 using seconds past midnight SELECT TRUNC( (TO_NUMBER(SUBSTR(TO_CHAR(TO_NUMBER(TO_CHAR (SYSDATE,'sssss'))/86399),-7,7)) /10000000)*32767 ) random FROM dual; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبداللطيف بتاريخ: 16 مارس 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 16 مارس 2004 وارفق لكم المثال بملف مرفقتحياتيTofeee Creating_Random_Numbers_in_PL_SQL.txt اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
kamal1958 بتاريخ: 16 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 16 مارس 2004 شكرا على هذا البرنامج اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
John بتاريخ: 16 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 16 مارس 2004 (معدل) مشكور جدا لقد قدم فى المنتدى حاجة مماثلة من قبلو لكن اريد ان اسال سؤال هل يمكن تحديد اكبر رقم و اصغر رقم لهذه الدالة ؟ تم تعديل 16 مارس 2004 بواسطة John اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبداللطيف بتاريخ: 17 مارس 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 17 مارس 2004 شكر على المداخلات لكن كيف رقم اصغر واكبر ، ربما لم افهمك جيدتحياتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Osama Soliman بتاريخ: 22 أكتوبر 2004 تقديم بلاغ مشاركة بتاريخ: 22 أكتوبر 2004 مشكور مشكور مشكور اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mr_pop_1984 بتاريخ: 19 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 19 نوفمبر 2004 يسلمو يا استاذ عبد اللطيفو الله ما قصرت وان شاء الله يكونوا في ميزان حسناتك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
turkiman بتاريخ: 3 يناير 2005 تقديم بلاغ مشاركة بتاريخ: 3 يناير 2005 مشكوووووور اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
-=|mOOdY|=- بتاريخ: 6 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 6 يونيو 2005 thanx tofeeeeeeeeeeeeeeeeee اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
K_fakhouri بتاريخ: 14 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 14 يونيو 2005 بارك الله فيك ، جزاك الله خيراً في الدنيا والآخرة ان شاء الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
kzaghloul بتاريخ: 15 يونيو 2005 تقديم بلاغ مشاركة بتاريخ: 15 يونيو 2005 مشكور جدا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
M00n بتاريخ: 29 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 29 يوليو 2005 تحية طيبة لجميع الاعضاءأود ان اعرف اين يتم ادراج هذا الكود create or replace package ,procedure , function,..و لكم جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
alaahiakal بتاريخ: 29 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 29 يوليو 2005 مشكور اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mr.mostafa بتاريخ: 29 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 29 يوليو 2005 بارك الله فيك ، جزاك الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 30 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 30 يوليو 2005 بارك الله فيك على هالمعلومة القيمة ونفعك بعلمك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
motasem بتاريخ: 30 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 30 يوليو 2005 الأخ الكريم مشكور على عملك و أريد أن ألفت النظر الى أن أوراكل لديها باكيج للتعامل مع القيم العشوائية dbms_random اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohmed_mahmoued بتاريخ: 8 أغسطس 2005 تقديم بلاغ مشاركة بتاريخ: 8 أغسطس 2005 شكراً لك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.