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

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

صورة
- - - - -

Creating Random Numbers in PL/SQL


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

#1 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 March 2004 - 01:32 PM

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,B)+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,B)+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;


#2 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 March 2004 - 01:38 PM

وارفق لكم المثال بملف مرفق


تحياتي

Tofeee

ملفات مرفقة



#3 kamal1958

kamal1958

    مشترك

  • الأعضــاء
  • 135 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:قراءة الكتب الإسلامية واللغة العربية والمشي

تاريخ المشاركة 16 March 2004 - 02:39 PM

شكرا على هذا البرنامج

#4 John

John

    عضو نشط

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

تاريخ المشاركة 16 March 2004 - 03:19 PM

مشكور جدا لقد قدم فى المنتدى حاجة مماثلة من قبل
و لكن اريد ان اسال سؤال
هل يمكن تحديد اكبر رقم و اصغر رقم لهذه الدالة ؟

تم التعديل بواسطة John, 16 March 2004 - 03:20 PM.

Johnwahba2002@hotmail.com

#5 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 March 2004 - 07:25 AM

شكر على المداخلات لكن كيف رقم اصغر واكبر ، ربما لم افهمك جيد


تحياتي

#6 Osama Soliman

Osama Soliman

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,611 مشاركة
  • الاسم الأول:Osama
  • اسم العائلة:Soliman
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle Technical Consultant - Asfour Crystal International

تاريخ المشاركة 23 October 2004 - 02:50 AM

مشكور مشكور مشكور

وقل رب زدنى علماً
Osama M. Soliman
Oracle Certified Professional
Oracle Technical Consultant

 Asfour Crystal International
Cairo - Egypt
Osama.Soliman@hotmail.com
Osama.Soliman@asfourcystal.com


#7 mr_pop_1984

mr_pop_1984

    عضو

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

تاريخ المشاركة 19 November 2004 - 10:57 PM

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

#8 turkiman

turkiman

    عضو

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

تاريخ المشاركة 04 January 2005 - 01:36 AM

مشكوووووور
سبحان الله وبحمده سبحان الله العظيم

#9 -=|mOOdY|=-

-=|mOOdY|=-

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 06 June 2005 - 10:32 PM

thanx tofeeeeeeeeeeeeeeeeee

صورة

!!! كم أنت عبقري !!!


#10 K_fakhouri

K_fakhouri

    عضو

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

تاريخ المشاركة 14 June 2005 - 09:52 AM

بارك الله فيك ،
جزاك الله خيراً في الدنيا والآخرة ان شاء الله

#11 kzaghloul

kzaghloul

    مشترك

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

تاريخ المشاركة 15 June 2005 - 10:32 AM

مشكور جدا
ودمتم ذخرا لهذه الأمة
---------------------------------------------
أخوكم في الله KHALED ZAGHLOUL
PROGRAMMER AND SYSTEM ANALYST
KZAGHLOUL@YAHOO.COM

#12 M00n

M00n

    عضو

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

تاريخ المشاركة 29 July 2005 - 04:21 PM

تحية طيبة لجميع الاعضاء
أود ان اعرف اين يتم ادراج هذا الكود create or replace package ,procedure , function,..

و لكم جزيل الشكر

#13 alaahiakal

alaahiakal

    مشترك

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

تاريخ المشاركة 29 July 2005 - 07:54 PM

مشكور
Mr.CSS

#14 mr.mostafa

mr.mostafa

    مشترك

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

تاريخ المشاركة 30 July 2005 - 01:32 AM

بارك الله فيك ،
جزاك الله خير
* القاعة كنز لا يفنى
* من وضع نفسه دون قدره ...... رفعه الناس فوق قدره
* ليس من الفخر أن تقهر قويًا بل أن تنصر ضعيفاً

#15 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 30 July 2005 - 10:06 AM

بارك الله فيك على هالمعلومة القيمة ونفعك بعلمك
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com