SQL and PL/SQL
Oracle SQL and PL/SQL | Queries | DML & DDL statements | Functions | Procedures | Triggers and Packages
لغة الإستعلام SQL
5,153 موضوعات في هذا القسم
-
السام عليكم اخواني المطلوب مني اجيب فتره بين تاريخين يعني لو ادخلت تاريخ 8/5/2004 اريد اعرض كل التواريخ بين 1/5/2004 الي عند التاريخ الي ادخلته شكرا
-
لو سمحتم اريد افهم ما هو الهدف او الاستفاده من تكوين ال package ثم كيف اكون فكره لتكوين package انا اعرف خطوات التكوين specification and body لكن افتقد الى كيفية التفكير لتكوين body اقصد الربط بين ال function and procedure فى ال body اعرف انه قد لا يفهم بعض الاشخاص قصدى لكن اريد ممن فهم الغرض من السؤال توضيح كيف اكون فكره لبناء package قوى وكيف اربط بين عناصر ال body به ارجو من الاخ hanyfreedom2005 عدم الرد على الموضوع لانى سبق وعرفت رايك وحتى لا يعتمد احد الاخوه على ردك ويكتفى به
-
بسم الله الرحمن الرحيم لنفرض عندنا جدول الموظفين employees عايز اعمل قيد على العمودين مع بعض FIRST_NAME LAST_NAME بحيث اما الاتنين مع بعض not null او يترك العمودين فاضيين ارجو الرد شكرا :angry: :angry:
-
السلام عليكم ورحمة الله وبركاته انا عندي سؤال عارف انه تافه لاني صغير في قواعد بيانات اوراكل سؤال هو هل تصميم الجداول في اوراكل مثل الاكسس يعني على شكل واجهه وتكون التعبئه في الجدول عن طريق تحديد الحقل وتعبئته ...باختصار مثل الاكسس عندما اريد ان اصمم جدول اما انه يكون تصميم الجدول عن طريق الكود. يعني اعتمد على تصميم الجدول كله بالكود وياليت تعطوني فكره مبسطه مره عن تصميم الجدول في اوراكل . علما باني الحمد لله شغال في دورة اوراكل لسه في الشهور الاولى اشكركم ودمتم امنين مطمئنين
-
السلام عليكم و رحمة الله و بركاته إخواني الكرام موعدنا مع function اخري تقوم بعد الكلمات الموجودة في نص الكود: CREATE OR REPLACE FUNCTION count_words ( p_data VARCHAR2 ) RETURN VARCHAR2 IS v_data VARCHAR2 (2000) := single_space (p_data); v_count NUMBER := 0; -- BEGIN FOR i IN 1 .. LENGTH (v_data) LOOP IF substr (v_data, i, 1) = ' ' THEN v_count := v_count + 1; END IF; END LOOP; RETURN v_count; END count_words; / غرض و كيفية الاستخدام : من الممكن ان تستخدم هذه الفانكشن في عد الكلمات في برقية لنظام برقيات حتي يمكن حساب كلفة البرقية حيث عادة يتم اتساب كلفة البرقية عن طريق عدد كلماتها و هي تعتمد علي عد المسافات …
-
لأنشاء حقل الموبيل يجب ان نكتب اول رقم صفر ....... والمشكلة انى حاولت بكل الطرق لعمل أنسرت و لكن الصفر الذى فى الاول لا يظهر ....... هكذا:- create table mob(mob_no number); insert into mob values(0129341117); select*from mob; MOB_NO ---------------- 129341117 فما هو الحل لظهور الصفر ؟
-
كيف يمكنني استخراج القيمة الحالية لـsequence بدون عمل nextval في نفس جلسة العمل ............. مع العلم أنه في dba_sequences يوجد last number والذي هو آخر رقم متاح وهو في حالة الـcache آخر رقم في الـ cache ....... أفيدوني
-
-
كما عودناكم هناك دائما الجديد ,, ومع مودي مش هتقدر تغمض عينيك هناك سؤال تقليدي من قبل الزبائن وهو "اريد اظهار اقل راتب لكل دائرة" والذي ببساطة يمكن حله كما يلي SQL> select deptno, min(sal) 2 from emp 3 group by deptno; ولكن بتعرفو الطلبات ما بتخلص بيرجع بيطلب كمان شغلة "بدي اعرف رقم الموظف صاحب اقل راتب في كل دائرة" بيطلب كثير اشياء فتقوم بتعديل الجملة لكي تصبح SQL> select deptno, empno, min(sal) 2 from emp 3 group by deptno; لكن للأسف يظهر معك الخطأ التالي ORA-00979: not a GROUP BY expression كنا زمان نحل هذه المشكلة باستعمال sub-select او انشاء inline-view ولكن هناك طريقة ظريفة اكتشفتها بالامس منذ 9i وهي موجودة SQL> select …
-
انا مش فاهم موضوع الربط join types بين جدولين لاستخراج بيانات منهم ارجو شرح بسيط او رابط للشرح وياريت يكون بالعربى ولو مفيش عربى ممكن انجليزى عادى شكر تم تعديل عنوان الموضوع من قبل المشرف, راجع شروط الكتابه في المنتدى إدارة المنتدى
-
ممكن لو سمحتم اى شخص يفهمنى انا ايه خطأى فى هذا الكود فانا لا اقوم بكتابة اى procedure الا وخرج لى هذا الخطأ وحاولت ان اعرف ما هو سببه ولكنى لم استطعفهل يستطيع احد منكم ان يخبرنى بسبب هذا الخطأ واليكم الكود create or replace procedure add_ahmad is a number; s varchar2; d number; begin select salary,last_name,employee_id into a,s,d from employees where last_name='King'; insert into ahmad values(a,s,d); end; الخطأ Warning: Procedure created with compilation errors.
-
السلام عليكم ورحمة الله وبركاته كيف أستطيع أن أقراء الـ Oracle home من خلال Stored Procedure على الـ DataBase أو هل يتم تخزين مكان تثبيت الاوراكل داخل قاعدة البيانات. مثال select <ORACLE_HOME> into var from x_iew أو هل يوجد شيء داخل الاوراكل مثل DBMS_UTILITY يستطيع أن يقرأ المكان الموجود فيه قاعدة البيانات. مع كل الاحترام والتقدير،
-
لا يوجد فى sql متغير time و متغير date لا يقبل غير التاريخ ازاى اعمل حقل اسجل فيه وقت معين مثل وقت الحضور و الانصراف اليومى
-
اخوانى اثناء تفقدى لل exception وجدت مجموعه من الاخطاء الشائعه واسمائها التى نكتبها بها فى الكود لتعريفها وقد وجدت خمسة تعريفات للاخطاء انا اعرف اربعه لكن لم استطع معرفة ما المقصود بالخامس والتعريفات هى 1/ no_data_found وهذا يستخدم عند عدم رجوع جملة select باى ناتج 2/ too_many_rows وهذا عندما تعود جمله select باكثر من صف والمتغير الذى لدى يكون مفرد 3/ invalid_cursor وهذا للخطا فى الكيرسر سواء فتحه وهو مفتوح او غلقه وهو مغلق 4/ ziro_divide وهذا عند القسمه على صفر 5/DUP_VAL_ON_INDEX هذا هو الذى لم استطع معرفة استخدامه فارجو ممن يعلم استخدامه ان يشرحه لى وله جزيل الشكر
-
لعمل نتجية للسنة اليك جملة SQL تؤدى الغرض SELECT LPAD( Month, 20-(20-LENGTH(month))/2 ) month, "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" FROM ( SELECT TO_CHAR(dt,'fmMonthfm YYYY') month, TO_CHAR(dt+1,'iw') week, MAX(DECODE(TO_CHAR(dt,'d'),'1',LPAD(TO_CHAR(dt,'fmdd'),2))) "Sun", MAX(DECODE(TO_CHAR(dt,'d'),'2',LPAD(TO_CHAR(dt,'fmdd'),2))) "Mon", MAX(DECODE(TO_CHAR(dt,'d'),'3',LPAD(TO_CHAR(dt,'fmdd'),2))) "Tue", MAX(DECODE(TO_CHAR(dt,'d'),'4',LPAD(TO_CHAR(dt,'fmdd'),2))) "Wed", MAX(DECODE(TO_CHAR(dt,'d'),'5',LPAD(TO_CHAR(dt,'fmdd'),2))) "Thu", MAX(DECODE(TO_CHAR(dt,'d'),'6',LPAD(TO_CHAR(dt,'fmdd'),2))) "Fri", MAX(DECODE(TO_CHAR(dt,'d'),'7',LPAD(TO_CHAR(dt,'fmdd'),2))…
-
تحياتي للجميع عملية مقارنة تاريخين باليوم الساعة والدقائق والثواني كذلك tofeee CREATE OR REPLACE FUNCTION date_difference( p_start_date IN DATE, p_end_date IN DATE ) RETURN VARCHAR2 IS ln_difference NUMBER := p_end_date - p_start_date; ln_days PLS_INTEGER := trunc( ln_difference ); ln_hours PLS_INTEGER := mod( 24 * ln_difference, 24); ln_mins PLS_INTEGER := mod( 1440 * ln_difference, 60); ln_secs PLS_INTEGER := mod( 86400 * ln_difference, 60); BEGIN RETURN( 'Days : ' || ln_days || ' Hours : ' || ln_hours || ' Mins : ' || ln_mins || ' Secs : ' || ln_secs); FUNCTION_DATE_DIFF.txt
-
عندى جدول trans كالاتى T_DATE T_TYPE S_CODE S_NAME T_BILL 03/10/2006 بيع ETEL المصرية للاتصالات 520.27 04/10/2006 شراء ETEL المصرية للاتصالات 12505.72 20/11/2006 بيع ETEL المصرية للاتصالات 3658.88 16/01/2007 شراء ETEL المصرية للاتصالات 2819.22 اريد ان استخرج الاتى s_code t_sell t_buy net etel 5000 8000 3000 هل هذا ممكن ام لا واذا كان كيففففففففففففففففففففففففففففففففففففف ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
-
السلام عليكم و رحمة الله الله و بركاته إخواني الأعزاء اليكم الاسكربت الخاص بانشاء الاسكيما التعليمية summit2 و الخاصة بالفورمز التعليمية الموجود مع الديفلبر order, customer , inventory و المستخدمة في الpractice و الامثلة و هذه هي خطوات تشغيل الملف 1-قم بتحميل الملف المرفق الي المجلد c:\ مثلا . 2-افتح الٍSQlplus مع عمل كونكت به علي اليوزر الذي ترغب في وضع الاسكيما به و ليكن scott/tiger و اكتب فيه الاتي @c:\summit2.txt; و سيتم انشاء الجداول و عمل populate لها بالداتا بالتوفيق ان شاء الله summit2.txt
-
السلام عليكم اريد شرح واضح وبسيط لهذين الأمرين ,,
-
لو سمحتوا عايز اخر Testkingضروري علشان عايز امتحن في أقرب فرصة
-
السلام عليكم ارجو من الاخوان في المنتدى مساعدتي في هذه (القضية العويصة) حيث اقوم بعمل برنامج لاختبار الطلاب ولكن لدي بعض المشاكل التي صادفتها وهي select round ((dbms_random.value ((select min (q_id)from questions),(select max (q_id) from questions))),0) from dual / من اجل توليد رقم عشوائي تكون قيمتة الصغرى والكبرى ماخوذة من جدول الاسئلة,, ولكن الذي يحدث ان هذة الدالة تعمل بشكل صحيح عندما انفذها في برنامج SQL Plus ولكن عندما انفذها بالفورم مع When-puttom-preseed بالشكل التالي [code]select q_id, question into :q_no1, :display_item19_q1 from questions where q_id = (select round (dbms_random.value ((select min (q_id)from questions), (select max (q_id) from questions)…
-
السلام عليكم ورحمة الله و بركاته إخواني الكرام اليكم استعلام للحصول عل ي كيفية الاستعلام عن ثاني اعلي راتب او ثاني اقل راتب بين الموظفين طبعا ممكن ان تكون ثاني او ثالث علي حسب ما تريد اليكم الكود للحصول علي ثاني اعلي راتب select level, max(sal) from emp where level=2 connect by prior sal > sal group by level للحصول علي ثاني اقل راتب select level, min(sal) from emp where level=2 connect by prior sal <sal group by level يمكن تغيير الدرجة عن طريق تغيير القيمة من 2 الي اي رقم اخر و الاسكربت بالمرفقات بالتوفيق min_maxval.txt
-
لدي أكونت مغلق ، و أريد أشغله ، ما هو الحل ؟
-
ممكن تعليم ال transtion builder من فضلكم لان انا محتاج اتعلمة ضرورى
-
السلام عليكم ورحمة الله وبركاته اخواني الكرام الهدف من الكود : هو اذا كنت تريد ان تحذف بيانات شيء محدد من جميع الجداول مثلا بيانات موظف من جميع الجداول فنرى ان المشترك بين هذه الجداول هو حقل رقم الموظف Emp_id طريقة عمل الكود : نقول له اجلب جميع اسماء الجداول اللي فيها الحقل اللي اسمه emp_id حيث ان رقم الموظف هو عبارة عن الرمز ur_data ويخزنها في ملف سكربت اليوز المفضل لتنفيذ الكود : يفضل استخدام يوزر ال System SPOOL C:\DELETE_COLM.SQL SELECT 'DELETE FROM '||TABLE_NAME||' WHERE '||COLUMN_NAME||'="UR_DATA";' FROM USER_TAB_COLUMNS WHERE COLUMN_NAME LIKE '%Emp_Id' / SPOOL OFF ملاحظة : لكي يعمل عندك الكود يجب ان يكون اسم الحقل اللي هو اسم الموظف موحد مثلا ان يكون…