الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

لو سمحتم يا جماعة عندي مشكلة في Insert All

Featured Replies

بتاريخ:

الكود

INSERT ALL
     INTO special_sal VALUES (employee_id, salary)
     INTO sal_histrory
          (employee_id, salary, hire_date)
     INTO mgr_history
          (employee_id, manager_id, salary)
  SELECT employee_id, manager_id, salary, hire_date
    FROM employees WHERE employee_id < 125 AND salary > 20000;



========================================================


into sal_histrory (employee_id,salary,hire_date)
*

ERROR at line 4:
ORA-00913: too many values



انا بشوف الأعضاء بيكتبوا الكود بشكل معين (في editor) ممكن اخباري كيف ؟

بتاريخ:

ORA-00913: too many values


Cause: The SQL statement requires two sets of values equal in number. This error occurs when the second set contains more items than the first set. For example, the subquery in a WHERE or HAVING clause may return too many columns, or a VALUES or SELECT clause may return more columns than are listed in the INSERT.
Action: Check the number of items in each set and change the SQL statement to make them equal.


ده وصف الخطأ اللى ظهر لك جبتهولك من على موقع يعرض كل اخطاء الSQL
الموقع موجود فى مشاركه لى على الرابط التالى
http://www.araboug.org/ib/index.php?showto...mp;#entry130332
بالتوفيق
محمد عبد الوهاب هجرس

تم تعديل بواسطة هجرس

بتاريخ:
  • كاتب الموضوع

جزاكم الله خيرا يا اخ محمد

بتاريخ:

بالنسبة لكودك يجب ان تكون ال alias متساوية مع حقول الجدول
، أو قم بكتابة الحقول بعد اسم الجدول
، أو عوض عن أسماء الحقول التى لا تريد ان تعطيها قيمة بالقيمة NULL

أذا الخطاء مازال ظاهر ... فأرجو ان ترفق تكوين الجداول التى ذكرتها بكودك ..... و انا هظبطلك الكود .

انا بشوف الأعضاء بيكتبوا الكود بشكل معين (في editor) ممكن اخباري كيف ؟


المسألة سهلة خالص ..... بعد كتابتك لكودك ، علم عليه بالموس و انظر للأزرار التى بالأعلى هتلاقى زر أسمه sql أضغط عليه .... فهتلاقى كودك بين هذان العلامتان :-

[s Q L ] your Code [ / S Q L ]

و بعد الضغط على زر " أضافة رد " هتلاقى كودك أتضبط بتنسيق كود السكويل .

و بالتوفيق
بتاريخ:
  • كاتب الموضوع

تمام
جزاكم الله خيرا

بتاريخ:
  • كاتب الموضوع

تكوين الجداول كالاتي :-

desc mgr_history
--
EMPLOYEE_ID 	NUMBER(6)
MANAGER_ID 	NUMBER(6)
SALARY 		NUMBER(9,2)
HIRE_DATE 	DATE
-----------------------------------------------------------------------
desc special_sal
--
EMPLOYEE_ID 	NUMBER(6)
SALARY 		NUMBER(9,2)
----------------------------------------------------------------------
desc sal_histrory
--
EMPLOYEE_ID 	NUMBER(6)
HIRE_DATE 	DATE
SALARY 		NUMBER(9,2)



و ده الكود نفسه

INSERT ALL
INTO special_sal VALUES (employee_id, salary)
INTO sal_histrory
(employee_id, salary, hire_date)
INTO mgr_history
(employee_id, manager_id, salary)
SELECT employee_id, manager_id, salary, hire_date
FROM employees WHERE employee_id < 125 AND salary > 20000;




ومتشكر جدا

بتاريخ:

desc special_sal
-----------------------------------------
EMPLOYEE_ID 	NUMBER(6)
SALARY 		NUMBER(9,2)
----------------------------------------------------------------------
desc sal_histrory
-----------------------------------------
EMPLOYEE_ID 	NUMBER(6)
HIRE_DATE 	DATE
SALARY 		NUMBER(9,2)
-----------------------------------------------------------------------
desc mgr_history
-----------------------------------------
EMPLOYEE_ID 	NUMBER(6)
MANAGER_ID 	NUMBER(6)
SALARY 		NUMBER(9,2)
HIRE_DATE 	DATE
----------------------------------------------------------------------
----------------------------------------------------------------------
----------------------------------------------------------------------

INSERT ALL
     INTO special_sal
          (employee_id, salary
          )
   VALUES (employee_id, salary
          )
     INTO sal_histrory
          (employee_id, salary, hire_date
          )
   VALUES (employee_id, salary, hire_date
          )
     INTO mgr_history
          (employee_id, manager_id, salary
          )
   VALUES (employee_id, manager_id, salary
          )
  SELECT employee_id, manager_id, salary, hire_date
    FROM employees WHERE employee_id < 125 AND salary > 20000;



و بالتوفيق

insert_all.zip

بتاريخ:
  • كاتب الموضوع

شكرا ا/هاني على الاهتمام و بذل المجهود
الكود كله تمام الحمد لله رب العالمين
بس هو المشكلة كانت في الصيغة ولا في عدد الcolumns ولافي ايه بالظبط

بتاريخ:

انت غلطت فى الجدول التانى و الثالث ..... فالتانى اللى هو " sal_histrory " انت مكتبتش عبارة ال " VALUES " بعد أسم الجدول ،
و نفس الشىء للجدول الثالث " mgr_history " برضه مكتبتش عبارة ال " VALUES " بعد أسم الجدول
و فى أخر قيمة لازم كنت تكتب null لأنك مش عاوز تحط قيمة فى عمود ال HIRE_DATE .

احنا عموماً فى جمل ال insert بنقول شىء من الاثنين :-

INSERT INTO sal_histrory VALUES (employee_id, salary, hire_date);
--or
INSERT INTO sal_histrory (employee_id, salary, hire_date) VALUES (employee_id, salary, hire_date);



و انا أفضل الطريقة الثانية لقلة أحتمال وجود خطاء بها ، لكن طبعاً الطريقتان صح .

أتمنى تكون الفكرة وصلت ...... و اذا لم يكن شرحى واضح كفاية ، فأرجو ان تراجع درس ال INSERT اولاً ، ثم قم بمذاكرة درس INSERT ALL

مع تمنياتى لك بالتوفيق .

بتاريخ:
  • كاتب الموضوع

بشكرك مرة ثانية على المجهود والاهتمام يا ا/هاني

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.