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

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

صورة
- - - - -

مشكلة في تحويل نوع العمود


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

#1 the past

the past

    عضو مميز

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

تاريخ المشاركة 07 February 2010 - 08:00 PM

السلام عليكم ورحمة الله وبركاته



انا عندي جدول فيه داتا فيه عمود نوعه number واريد تحويله الى varchar2



بس تطلع المشكلة

ERROR at line 1:
ORA-01439: column to be modified must be empty to change datatype

وانا لا استطيع ان افرغ الجدول لان الموظفين يشتغلو فيه


ارجووووووو المساعدة

#2 malik alwadi

malik alwadi

    عضو نشط

  • الأعضــاء
  • 371 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Internet Browsing

تاريخ المشاركة 08 February 2010 - 09:18 AM

وعليكم السلام

لا يمكن تحويل Data Type للحقل وفيه بيانات يجب افراغ الحقل من البيانات

أو كطريقة بديلة قم بإنشاء حقل أخر من نوع Varchar2 ويتم أدخال فيه البيانات الجديدة بدل من الحقل القديم

لا الله الا انت سبحانك اني كنت من الظالمين


#3 the past

the past

    عضو مميز

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

تاريخ المشاركة 08 February 2010 - 09:49 AM

لابد وان تكون هناك طريقة ما



ارجوو المساعدة العاجلة


لانني واقف على هذه



شكرا وجزاكم الله خير


#4 Om MAriam

Om MAriam

    عضو نشط

  • الأعضــاء
  • 297 مشاركة
  • الاسم الأول:Nesrine
  • اسم العائلة:Ibrahim
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle consultant

تاريخ المشاركة 08 February 2010 - 11:05 AM

اتبع الخطوات التالية:
1- انشئ عمود نفس الداتا تيب والحجم بتاع العمود المراد تعديله
2-اعمل UPDATE للعمود الجديد وانقل فيه بيانات العمود الاول
3- اعمل UPDATE للعمود الاول بNULL
4- غير نوع العمود الاول
5- اعمل UPDATE من العمود الجديد المضاف للعمود الاول
6-اعمل DROP للعمود الجديد
هنا مثال غلى جدول الموظفينEMP:
ALTER TABLE EMP
ADD SAL1 NUMBER(7,2);

UPDATE EMP
SET SAL1 = SAL;
COMMIT;

UPDATE EMP
SET SAL = NULL;
COMMIT;

ALTER TABLE EMP
MODIFY SAL VARCHAR2(15);

UPDATE EMP
SET SAL = SAL1;
COMMIT;

ALTER TABLE EMP
DROP COLUMN SAL1;

---------------------------------
للاستوضاح او وجود مشكلة بالجدول الخاص بك ارسل CREATE statement الخاصة بالجدول بتاعك او العمود المراد تغيره

#5 أحمد جادو

أحمد جادو

    عضو نشط

  • الأعضــاء
  • 244 مشاركة
  • الاسم الأول:أحمد
  • اسم العائلة:جادو
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle Developer @ Alhasa Municipality

تاريخ المشاركة 08 February 2010 - 11:34 AM

أخي The_past لا توجد طريقة مباشرة
ولكن يمكنك إنشاء column آخر بنفس الجدول ولكن Data Type = Varchar2 وتقوم بنقل البيانات القديمة إليه
ثم أمامك أحد اختيارين
إما تقوم بحذف الcolumn القديم وتعدل اسم الجديد
أو تفرغ بيانات القديم وتعدل Data type ثم تعيد إليه البيانات من الجديد ثم تحذف الجديد


- أحمد جادو -
Senior Oracle Developer
Alhasa
Municipality

Alhasa - Saudi Arabia