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

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


mohamed_abdelsalam

Recommended Posts

الكود

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

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

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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