Amateur بتاريخ: 26 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 26 ديسمبر 2006 السلام عليكم ورحمة الله وبركاته..راح اضع لكم اليوم function لتحويل التاريخ الميلادي للتاريخ الهجري.. وفكرة هذه function أتت بعد ما استخدمت الـ function و الـ procedure الموجوده في المنتدى ووجدت بعض اختلافات التواريخ فيها ومشكلة دخول هلال رمضان والحج فكما الجميع يعلم ان التاريخ الهجري خصوصا في بعض اشهره يعتمد على روية الهلال وقد يتغير التاريخ في التقويم عن التاريخ الفعلي بعد رؤية الهلال.. من هنا جلست مع نفسي وحاولت أن أجد حلا لهذه المشكلة..مبدأ عمل الـ functionبشكل عام تعتمد على جدول يقوم من خلاله المستخدم بتحديد بداية التاريخ الميلادي بمايقابله بالتاريخ الهجري ويحدد عدد أيام التاريخ الهجري ومن خلال هذا الجدول تتم المقارنات..مثال: G_MONTH 1 G_YEAR 2007 G_DATE 01-01-2007 H_DAY 11 H_MONT 12 H_YEAR 1427 H_DATE 11-12-1427 N_DAY 29 كماهو موضح بالأعلى تم إدخال الشهر الميلادي والسنة وبداية الشهر الميلادي ومايقابل بداية التاريخ الميلادي بالهجري مفصلا وعدد أيام التاريخ الهجري.. والسبب وضع التواريخ بهذا الشكل انه في حال ارسال تاريخ ميلادي للـ function وليكن مثلا 2007-01-01 سيتم ارجاع التاريخ الهجري المقابل له فورا من دون عمل أي عملية للتاريخ عدا ذلك ستجدون مبدأ العمل داخل الكود.. ولمن أراد شرح للكود أنا مستعد..على أساس هذه المدخلات يتم استرجاع التاريخ الهجري المقابل للميلادي في حال وجدود الشهر الميلادي ومايقابله من تاريخ هجري بالنسبة لي أفادتني كثيرا بحيث أنني اعمل على برنامج التاريخ الهجري مهم فيه وبعض الناس دائما تعمل لي إحراج لماذا التاريخ لايوافق دخول الشهر أنا أريده كما دخل على الهلال خاصة في رمضان والحج..أتمنى من الجميع الاستفاده منها.. والدعاء لي بالتوفيق في الدنيا والآخرةومن يصعب عليه تطبيقها أنا سأكون متواجد للاجابة على أي استفسار.. من اليوم 2007-12-26 حتى 2007-12-28 وسأنقطع فترة الاجازة ثم سأعود من جديد بتاريخ 2008-01-06(ستجدون بالأسفل تتابعا الكود الخاص بالـ function يليه السكربت لانشاء الجدول الخاص بها) CREATE OR REPLACE FUNCTION DATE_CONVERTER (GREG_DATE DATE)RETURN DATE IS GDATE DATE; H_D NUMBER; H_M NUMBER; H_Y NUMBER; HDATE DATE; N_D NUMBER; BEGIN /********************** CREATED BY AMATURE ORACLE **************************/ SELECT GREG, HIJRA INTO GDATE, HDATE FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM'); IF GREG_DATE = GDATE THEN RETURN HDATE; ELSE IF GREG_DATE > GDATE THEN BEGIN SELECT H_DAY, H_MONTH, H_YEAR, HIJRA, N_DAY INTO H_D, H_M, H_Y, HDATE, N_D FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM'); IF N_D = 29 THEN BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > 30 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1|| '-' || (H_M+1) || '-' || H_Y); IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = 30 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1|| '-' || (H_M) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || (H_M) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || H_M || '-' || H_Y); END IF; END IF; END IF; END IF; END; ELSE IF N_D = 30 THEN BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || H_M || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D != 1 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M + 1) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D = 1 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1) || '-' || (H_M) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN RETURN ( ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) -1) || '-' || (H_M) || '-' || H_Y); END IF; END IF; END IF; END IF; END; END IF; END IF; END; END IF; END IF; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; TABLE GDATE_TO_HDATE (G_MONTH NUMBER(2), G_YEAR NUMBER(4), GREG DATE, H_DAY NUMBER(2), H_MONTH NUMBER(2), H_YEAR NUMBER(4), HIJRA DATE, N_DAY NUMBER(2)); تمت إضافة الملف بالمرفقات إدارة المنتدي CONVERT_DATE.zip 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد سعيد بتاريخ: 26 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 26 ديسمبر 2006 جزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sky information بتاريخ: 27 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 27 ديسمبر 2006 جزاك الله خير ....................................مشكــــــــــــــــــــــــــــــــــــــور على هذا المثال والفكرة جدا رائعة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 27 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 27 ديسمبر 2006 شكرا لك على هذا المجهود وهذه الفكرة الجديدة ..اعتقد انه يمكن استخدام هذه الطريقة مع كل انواع قواعد البيانات الاخرى ..اذا كان لدى تاريخ التعيين مثلا من ضمن حقول جدول الموظفين سيكون النوع dateهل سيتم تخزين التاريخ فى قاعدة البيانات على اساس انه ميلادى أو هجري ؟؟- هل سيتم التحويل الى التاريخ الهجري قبل الحفظ مباشرة .- هل سيمكن استخدام الfunctions الخاصة مع التاريخ .. مثل طرح تاريخين أو جمع أو ... فى حالة تخزين التاريخ بالهجري؟- فى حالة الفرز على التاريخ مثلا .. هل سيكون قبل التحويل ام بعد التحويل ؟؟ايهما افضل ان يخزن التاريخ بالميلادى ثم تستخدم هذه الطريقه للتحويل ام ان يحفظ التاريخ بالشكل الهجري مباشرة ؟؟عند وجود تقرير عن التاريخ من ... الى ... هل الافضل التعامل مع التاريخ الهجرى مباشرة او استخدام طريقة التحويل شكرا لك مرة اخرى اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 27 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 27 ديسمبر 2006 شكرا اخي على هذا المجهود الطيب وفكرة فعلا تستحق التقدير وجزاك الله خيروالذي اعرفه بخصوص مشكلة التاريخ العربي له ثلاثة حلول1- يوجد جدول جاهز به التاريخ العربي لمدة عشر سنوات ويستعملة كثير من المبرمجين2- ان تأخذ التاريخ العربي من المستخدم عند الدخول للبرنامج وتخزنه بحقل وبجواره حقل اخر للتاريخ الميلادي والمقارنة تكون بالميلادي3- ان تأخذ التاريخ من الجهاز وفي حالة النقصان تزيد في نظام الوندز وعند المقارنة تحول التاريخ العربي الى رقممضروب اليوم بواحد والشهر بثلاثين والسنة ب 354هذه للفائده --- اما فكرتك فهي حل جذري ان شاء اللهبالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 28 ديسمبر 2006 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 28 ديسمبر 2006 (معدل) شكرا للردود والتجاوب...الاخ/ sky_information شكرا لك..الأخ/ Amgedبحصولك على التاريخ الهجري بعد مقارنته بالتاريخ الميلادي من الممكن ان تعمل كل شيء لنفرض مثل..ليكن عندك شاشة تحتوي على عدة أعمدة منها عمود للتاريخ الميلادي وعمود آخر للهجري بامكانك ان تضع أي تريجر تراه مناسب إما post أو key_next على عمود الميلادي وسيتم عرض التاريخ الهجري أو تعمل تريجر على مستوى الفورم pre_commit أو on_commit يتم من خلاله فقط إرسال التاريخ الميلادي للـ function ليتم عرض التاريخ الهجري غرار الكود التالي وللعلم ان استخدم الـ function فقط في طباعة التقارير أنا أقوم بحفظ التاريخ ميلادي وعند طباعة التقارير يتم اظهار التاريخ الهجري.. وللعلم بامكانك تستخدم التاريخ الهجري حتى في الحفظ وتعمل معاك 100% ان شاء الله وفي ارسال التاريخ للتقرير.. begin select date_converter(:g_date) into :h_date from dual; end; المثال السابق يوضح كيفية إستخدم الـ function في الفورم..الأخ/ محمد عليشكرا جزيلا على ردك الجميل.. تم تعديل 28 ديسمبر 2006 بواسطة Amateur اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 28 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 28 ديسمبر 2006 الأخ / Amateurشكرا لك على الايضاح جزاك الله خيرا واعتقد اننا سننتظر منك المزيد .. من الحلول الجذرية .. شكرا لك مرة اخرى اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 6 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 يناير 2007 شكرا لكم وكل عام وانتم بخير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 6 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 6 يناير 2007 اخي Amateurالسلام عليكم ورحمة الله وبركاتة:-كل عام وانت بخير ياخياحب استوضح عن الاتي :اولا – انا طبقت الكود واشتغل لكن المشكلة في الاتي1- انا ادخلت البيانا كالتي:2- الشهر الميلاد 13- السنه الميلادية 20074- التاريخ الميلادي 2007/01/015- اليوم الهجري 116- الشهر الهجري 127- السنة الهجرية 14278- التاريخ الهجري 1427/12/119- عدد ايام الشهر الهجري 29--سوالي :حينما اطلب التاريخ 2007/01/02لايعطيني التاريخ الهجري الذي يوافقة بل يعطي استثناء غير معالج والمفروض ان يعطين هذا التاريخ بالهجري1427/12/12 هل يتم ادخال بيانات كل يوم بالصفة السابقة ام يكفي ان ادخل بيانات بداية كل شهر يعني السنة 12 سجل فقطواذا كان بيانات كل يوم يتم ادخاليها حيكون 360 سجل في السنة فهذه طريقة متعبة0 ارجو الايضاح عزيزي ولك شكري وتقديري ،،، اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 6 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 يناير 2007 (معدل) أخي محمدلايتم ادخال 360 سجل ولو كان كذلك لفسدت البرمجة...!!يتم ادخال 12 سجل للسنة الواحدة أي بدايات الاشهر الميلادية فقط ومايقابلها من الهجري فقط كما ذكرت يا اخيولايوجد اي استثناء فقط قم بانشاء الـ function واعمل لها compile وادخل فيها بيانات الاشهر واستخدم الكود التالي في sql وستظهر النتيجة صحيحة كماهي موجوده عندي select date_converter('02-01-2007') from dual result is 12-12-1427 انتظر ردك تم تعديل 6 يناير 2007 بواسطة Amateur اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 6 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 6 يناير 2007 شكرا اخي Amateurعلي سرعة اجبتك 0 وهذا يدل على كرم اخلاقك جعل الله ماتقدمه في موازين حسناتك وكثر الله من امثالكولكن العملية لم تضبط معي 00 واكيد الخطاء عندي لايخرج عن احتمالين1- اما ان تنسيق التاريخ في قاعدة البيانات يختلف عن مافي FUNCTION2- او يجب ادخال عدد 12 سجل للسنة حتى تتم المقارنة بين جميع الاشهر 29 - 30ورقم الخطاء هو45735سوف احاول واخبرك بالنتيجة ان شاء الله لك شكري وتقدير واحترامي ،،،،، اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
omar-alreyati بتاريخ: 7 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 يا ريت لو تشرح النا اشويه من هالكود.......وشكراً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 7 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 (معدل) أخي محمد:للعلم انا لم أقم الا بادخال 5 أشهلا فقط من 2007 ولم اجد اي عثرة وبالنسبة لتنسيق التاريخ لايعمل مشكلة وتنسيق التاريخ في قاعدة البيانات هو DD-MM-YYYYأنا ودي تذكر لي ماهي الرسالة التي تظهر أعرف انك ذكرت الرقم لكن أريد ماهو السبب....؟بامكانك تقوم بتعديل بسيط على كود الـ FUNCTION وتكتب في معالجة الخطأ exception when others then message(sqlerrm) ليخبرك ماهو الخطأ تم تعديل 7 يناير 2007 بواسطة Amateur اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 7 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 اخي Amateur شكرا لاهتمامك لقد حاولت وكان الخطاء ب SQL كالتالي:-SQL> select date_converter('02-01-2007') 2 from dual 3 /select date_converter('02-01-2007') *يوجد خطاء عن السطر 1ORA-06503: PL/SQL: الوظيفة عادة بدون قيمةORA-06512: "HGVPLK.DATE_CONVERTER", line 101 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 7 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 اخي محمد بصراحة أنا أستغرب ان الـ function تقوم بارجاع error لان اذا كان التاريخ غير المرسل لايمكن مقارنته اي غير مسجل له شيء بالجدول الاساسي يتم ارجاع قيمه فارغة من الممكن احتمالية date_format لقاعدة البيانات اهو سبب المشكلة لديك.. استعمل الكود التالي.. select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual; بانتظار ردك.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 7 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 انظر يأخي للخطاء الغريب فعلاSQL> select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual;select date_converter(to_date('02-01-2007','dd-mm-yyyy')) from dual *يوجد خطاء عند السطر 1يجب ان تتراوح اعداد السنه ( الكاملة ) بين – 4713 و+ 9999 وليس 0 1841 - ORA اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 7 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 تم إيجادالأخطاء التاليةلم تتمكن من تحميل الملف وذلك بسبب كبر حجمه أو بسبب عدم صلاحية هذه النوعيات من الملفات. الرجاء التأكد من ججم الملف ونوعه ثم إعادة المحاولة. أنا أحاول أنني أنزل لك مرفق في الفورم ونشوف بالضبط الخطأ لاني بصراحة جلست ألعب بالـ function والجدول لاجل يطلع error مثل كذا ماهي راضيه تطلع..!! هل من الممكن تسويلي print screen من شاشة الـ sql تستعرض لي فيها بيانات الجدول والاستعلام.. ممكن فيه حاجة بالجدول.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 7 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 7 يناير 2007 اخي Amateurالسلام عليكم ورحمة الله وبركاتة :-لقد ازعجتك ولكن مثلك من يتحمل - اللهم اغفر ذنوب اخي SQL*Plus: Release 9.0.1.0.1 - Production on ÇáÃÍÏ Ðæ ÇáÍÌÉ 17 08:01:15 1427 © Copyright 2001 Oracle Corporation. All rights reserved. ãÊÕá È: Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production With the Partitioning option JServer Release 9.0.1.1.1 - Production SQL> desc GDATE_TO_HDATE ; ÇáÇÓã ÎÇáí¿ ÇáäæÚ ----------------------------------------- -------- ------------------------- G_MONTH NUMBER(2) G_YEAR NUMBER(4) GREG DATE H_DAY NUMBER(2) H_MONTH NUMBER(2) H_YEAR NUMBER(4) HIJRA DATE N_DAY NUMBER(2) SQL> select * from GDATE_TO_HDATE ; G_MONTH G_YEAR GREG H_DAY H_MONTH H_YEAR HIJRA ---------- ---------- ---------- ---------- ---------- ---------- ---------- N_DAY ---------- 1 2007 11/12/1427 11 12 1427 21/02/0831 29 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 8 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 يناير 2007 أخي محمد أنا وراك وراك إلى أن نحل المشكلة لانه مو معقول تشتغل عندي ولا تشتغل عندك والسبب غير مقنع أبدا.. FUNCTION DATE_CONVERTER_TEST (GREG_DATE DATE)RETURN DATE IS GDATE DATE; H_D NUMBER; H_M NUMBER; H_Y NUMBER; HDATE DATE; N_D NUMBER; BEGIN SELECT GREG, HIJRA INTO GDATE, HDATE FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM'); IF GREG_DATE = GDATE THEN RETURN HDATE; ELSE IF GREG_DATE > GDATE THEN BEGIN SELECT H_DAY, H_MONTH, H_YEAR, HIJRA, N_DAY INTO H_D, H_M, H_Y, HDATE, N_D FROM GDATE_TO_HDATE WHERE G_YEAR = TO_CHAR(GREG_DATE,'YYYY') AND G_MONTH = TO_CHAR(GREG_DATE,'MM'); IF N_D = 29 THEN BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) >= 31 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M+1) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) <= 30 THEN RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || (H_M) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) -1|| '-' || H_M || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D >= N_D THEN RETURN (((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D)-1) || '-' || H_M || '-' || H_Y); END IF; END IF; END IF; END IF; END; ELSE IF N_D = 30 THEN BEGIN IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D < N_D THEN RETURN (TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1 || '-' || H_M || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D != 1 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - N_D)-1 || '-' || (H_M+1) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D > N_D AND (TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) - N_D = 1 THEN RETURN ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD') + H_D) - 1) || '-' || (H_M) || '-' || H_Y); ELSE IF TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D = N_D THEN RETURN ( ((TO_NUMBER(TO_CHAR(GREG_DATE,'DD')) + H_D) -1) || '-' || (H_M) || '-' || H_Y); END IF; END IF; END IF; END IF; END; END IF; END IF; END; END IF; END IF; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; / شوف هذي النسخة طلعتها من قاعدة البيانات علما انني متاكد انها نفس السابقة والدليل انك انشأتها من دون أي أخطاء في الانشاء لكن زيادة إحتياط .. للعمل أنا فقط قمت بتغيير اسمها الى DATE_CONVERTER_TEST كماترى فقط أي عند الاستعلام فقط تستخدم select date_converter_test(to_date('05-01-2007','dd-mm-yyyy')) from dual; بس أثناء فتحك للـ SQ أكتب الأمر التالي spool c:\sql.txt بعد ذلك انسخ الـ function والصقها في الـ sql بعد ذلك استعرض الجدول ونفذ الكود السابق وفي الأخير اكتب spool off; سيظهر لك الملف ارسله لي على الايميل حلو..الله يعينك علي بنسب لك لحد مايشتغل.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي الحيلان بتاريخ: 8 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 8 يناير 2007 اخي وعزيزي Amateuالسلام عليكم ورحمة الله وبركاتة :-ابشرك اشتغل الكود 100% وكانت النتيجة 1427/12/15وجربته ايضا على الفرم وكانت النتيجة مذهله فعلاومهما وضعت من الكلمات المديح فهي قليلة في حقك بصراحهواسال الله ان يسدد خطاك ياخي واي خدمة انا مستعد00 وعلاوه على ذلك سوف بأذن الله اقدم لك هدية باسمك في هذا المنتدىعبارة عن مشاركة وهي طريقة البحث بطريقة متقدمة وهي البحث باكثر من متغير مجتمعة او كل واحد على حدهعلى حسب رغبة المستخدم مثلا الاسم + الجنسية + رقم الهوية + العمر 0000 الخ مهما كان عددهاوسوف ابداء ان شاء الله في اعدادهاولك تحياتي وتقديري ،،،،انتظر المشاركة000؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 8 يناير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 يناير 2007 اخي وعزيزي Amateuالسلام عليكم ورحمة الله وبركاتة :-ابشرك اشتغل الكود 100% وكانت النتيجة 1427/12/15وجربته ايضا على الفرم وكانت النتيجة مذهله فعلاومهما وضعت من الكلمات المديح فهي قليلة في حقك بصراحهواسال الله ان يسدد خطاك ياخي واي خدمة انا مستعد00وعلاوه على ذلك سوف بأذن الله اقدم لك هدية باسمك في هذا المنتدىعبارة عن مشاركة وهي طريقة البحث بطريقة متقدمة وهي البحث باكثر من متغير مجتمعة او كل واحد على حدهعلى حسب رغبة المستخدم مثلا الاسم + الجنسية + رقم الهوية + العمر 0000 الخ مهما كان عددهاوسوف ابداء انشاء الله في اعدادهاولك تحياتي وتقديري ،،،،انتظر المشاركة000؟ الله يجزاك بالخير ولا يهمك احنا حاضرين وباي وقت والله ويشهد اني انبسطت بس يوم قلت انه اشتغل معاك وهذا هو المهم اما بالنسبة للمشاركة اتمنى ان تكون باسمك لانه عملك فعلا وتشكر على كل مجهود تقوم به.. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
wlahmad بتاريخ: 10 فبراير 2007 تقديم بلاغ مشاركة بتاريخ: 10 فبراير 2007 جزاك المنان خير الجنان اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 13 فبراير 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2007 شكرا للمرور يااخ wlahmad اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
amino1 بتاريخ: 28 أبريل 2007 تقديم بلاغ مشاركة بتاريخ: 28 أبريل 2007 فكرة رائعة جزاك الله خير وممكن الحصول على التاريخ الميلادي و المقابل له بالهجري من اى جهة تتعامل مع التقويم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
سماسيم بتاريخ: 12 مايو 2007 تقديم بلاغ مشاركة بتاريخ: 12 مايو 2007 شكرا جزيلا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.