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

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

صورة
- - - - -

كيف ادخل قيم ؟


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

#1 nora2006

nora2006

    مشترك

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

تاريخ المشاركة 28 December 2007 - 04:57 AM

مساء الخير
انا مش عارفة اعمل جملة انسرت INSERT محددة بمعنى ؛ فرضا جدول EMP به حقول منها مثلا ENAME وعندى جدول تاني مثلا اسمه EMP_2 وبهذا الجدول نفس الحقول الموجودة فى الجدول الاول ولدى سؤالين الاول :
اريد نسخ البيانات الموجودة بحقل ENAME من جدول EMP الى الجدول الاخر وهو EMP_2 داخل حقل ENAME ايضا وعندما حاولت الادخال بالطريقة التالية
INSERT INTO EMP_2(ENAME) VALUES (SELECT ENAME FROM EMP ) ;

ولكن للاسف مش عارفة اوصل لحل ؟؟؟؟؟؟؟؟؟

السؤال الثاني : الجدول EMP_2 به حقل EMPNO وهو PRIMARY KEY اى لا يمكن ان يكون خالي وعندما احاول ادخال اى قيم داخل حقل ENAME يرفض وذلك لانه يجب ادخال قيم مماثلة فى EMPNO وانا اريد انا ادخل القيم الموجود فى جدول EMP.ENAME الى جدول EMP_2.ENAME فقط فما الحل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

اسفة اذا كنت طولت عليكم بس فعلا مش عارفة اوصل لحل ارجوا مساعدتكم .
وميرسي ليكم مقدما
اختكم
نورا

#2 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 December 2007 - 08:59 AM

السؤال الاول

INSERT INTO EMP_2(ENAME)
SELECT ENAME FROM EMP


السؤال الثاني

#3 nora2006

nora2006

    مشترك

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

تاريخ المشاركة 28 December 2007 - 04:28 PM

اولا ميرسي ليك جدا يا استاذ عبد اللطيف على اهتمامك وفعلا عملية INSERT على جدول ليس به اى قيود سليمة ؛ ولكن لازال هناك مشكلة وهي انه عندما يتم عملية INSERT تظهر هذه الرسالة التالية
ORA-01400: cannot insert NULL into
"SCOTT"."EMP_2"."EMPNO"
وذلك لان حقل EMPNO برمري كي PRIMARY KEY ؛ فما الحل لتفادي البريمرى والقيام بعملية الادخال مرة واحدة
ميرسي ليك مرة تانية وارجوا ان اجدا الحل لديكم
اختكم نورا

#4 ya_ro2005

ya_ro2005

    عضو

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

تاريخ المشاركة 29 December 2007 - 01:37 AM

اختي الكريمة ادا كنتي تريدين نسخ عمود الاسم من جدول EMP ببياناته الي الجدول EMP_2 فالافضل
كتابة
CREATE TABLE EMP_2 AS SELECT ENAME FROM EMP
اما الجملة التي كتبتها فاعتقد بوجد فيها مشكلة
:D

#5 nora2006

nora2006

    مشترك

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

تاريخ المشاركة 29 December 2007 - 02:46 AM

مرسي على ردك ولكن لا اريد نسخ عامود ولكنى اريد نقل بيانات من عامود الى عامود ؛ اوامر الانشاء انا عارفها بس انا عايزة انقل قيم وليس انشاء عامود
مرة تانية مرسي ليك
نورا

#6 بو حضرم

بو حضرم

    عضو

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

تاريخ المشاركة 29 December 2007 - 06:16 AM

اولا هذا الشي مش منطقي وهو في الاساس غير معمول به ولكن عالعموم هو سؤال جيد ويحتاج فكره بسيطه وراح اطرح حل اتمنى انه يكون صح لأني بصراحه ماجربته لسى لذلك اذا لم يكن الطلوب فاعذرني
و هو كالتالي:

1- مثل ماطرحوا الاخوه السابقين
insert into emp_2 (empno , ename ) value (select empno,ename from emp)

2-
بعد عملية الادخال تعمل عملية disable لل constrain تبع جدولemp_2
لانه لو حاولت تحذف البرايمري فهو مرتبط بconstraint بجدول اخر عن طريق foriegn key

ALTER TABLE emp_2
disable CONSTRAINT constraint_name;

او

ALTER TABLE emp_2
drop CONSTRAINT constraint_name;

وذلك لعدم منطقية وجود ذلك constraint بعد الان اساسا


3-
تحذف empno من جدول emp_2

ويظل وجود ename مثل ماهو عليه

#7 عبداللطيف

عبداللطيف

    مــشــرف عــام

  • الإشراف العام
  • 1,267 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 December 2007 - 10:08 AM

اختي الكريم

اعتذر لوجود مشكلة في جهازي لما استطيع ان اجيب على السؤال الثاني

السؤال الاول
السؤال الاول

INSERT INTO EMP_2(ENAME)
SELECT ENAME FROM EMP


السؤال الثاني
ممكن ان تضعي ترقيع تلقائي في حقل في emp_2 عند طريق انشاء squence


ممكن ان تستفيدي من هذا الرابط

#8 amr fawzy

amr fawzy

    مشترك

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

تاريخ المشاركة 29 December 2007 - 12:45 PM

السلام عليكم ورحمه الله وبركاته
ياخى عبد اللطيف جزاكم الله خير على ردودك الجميله دائما واحب ان ابلغ حضرتك ان الرابط غير موجود

#9 sameh bakkar

sameh bakkar

    مشرف قسم المبتدئين

  • فريق الإشراف
  • 1,019 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 December 2007 - 02:20 PM

بسم الله الرحمن الرحيم

الأجابه من كتاب اوراكل نفسه بالفصل الثامن تحت موضوع :

Copying Rows from Another Table



Do not use the VALUES clause.
Match the number of columns in the INSERT clause to those in the subquery.

مثال:


INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';

4 rows created.




و بالتوفيق ،،

Sameh Bakkar

Principal Oracle Apps Techno-Functional Consultant / Oracle E-Business Suite Certified Trainer

Oracle E-Business R11 Suite Applications Workflow Certified Expert

Oracle E-Business Suite R12 HCM Certified Implementation Specialist

Oracle Certified Professional

ITIL V3 Foundation certified

Microsoft Project certified




الموقع الخاص: AppsLead | Your Honest Guide | Sameh Bakkar


#10 nora2006

nora2006

    مشترك

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

تاريخ المشاركة 29 December 2007 - 03:44 PM

اولا ميرسى ليكم كلكم لانى بصراحة مكنتش متخيلة ان حد يرد عليا بسرعة ؛ فجزاكم الله كل خير
بالنسبة للرابط يا استاذ عبد اللطيف فهو غير موجود ؛ بالضافة الي انى غير محتاجة لعملية ترقيم الي انا محتاج نقل قيم من عامود الى عامود ارجوا ان تكون وصل لك مقصدي .
اما عن ايقاف القيد فقد يكون صحيح لحل المشكلة ؛ ولكن اليس هناك حالة او اسلوب لتفادي هذا الامر ؟
اما استاذ سامح بكار فالحل الذى ارسلته صحيح ولكن فى حالة عدم وجود قيد فانا لدى جدولين بكل واحد منهم حقلين فمثلا emp_1 وبه ename , empno ونفس الامر فى جدول emp_2 به ename , empno وفى الجدولين empno هو بريمرى كي primary key ؛ والمشكلة هي انى اريد نقل البيانات او اسماء الموظفين من حقل ename الموجود فى emp_1 وارسالها الى حقل ename الموجود فى emp_2 ؛ فلو ان الجدول emp_2 ليس به قيد بريمرى كي ما كان هناك مشكلة وكنت هنقل البيانات بنفس طريقتك يا استاذ سامح ؛ لكن وجود القيد مش مخلينى عارفة انقل اى بيانات .
ارجوا ان اكون قدرت اوصلك السؤال .
مرة تانية مرسي ليكم جميعا على تفاعلكم معايا
اختكم
نورا