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

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

صورة
- - - - -

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


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

#1 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 05 August 2008 - 09:50 AM

الكود

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) ممكن اخباري كيف ؟
سبحان الله وبحمده.. سبحان الله العظيم

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com

#2 هجرس

هجرس

    مشترك

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

تاريخ المشاركة 05 August 2008 - 12:58 PM

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.o...mp;#entry130332
بالتوفيق
محمد عبد الوهاب هجرس

تم التعديل بواسطة هجرس, 05 August 2008 - 01:02 PM.


#3 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 05 August 2008 - 02:21 PM

جزاكم الله خيرا يا اخ محمد
سبحان الله وبحمده.. سبحان الله العظيم

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com

#4 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 05 August 2008 - 04:48 PM

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

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

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


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

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

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

و بالتوفيق

#5 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 06 August 2008 - 08:49 AM

تمام
جزاكم الله خيرا
سبحان الله وبحمده.. سبحان الله العظيم

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com

#6 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 06 August 2008 - 11:22 AM

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

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;



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

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com

#7 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 06 August 2008 - 04:08 PM

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   708بايت   22 عدد مرات التحميل


#8 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 07 August 2008 - 09:30 AM

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

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com

#9 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 07 August 2008 - 04:26 PM

انت غلطت فى الجدول التانى و الثالث ..... فالتانى اللى هو " 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

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

#10 mohamed_abdelsalam

mohamed_abdelsalam

    مشترك

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

تاريخ المشاركة 08 August 2008 - 06:19 AM

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

mohamed_3abs@hotmail.com
mohamed3absm@gmail.com