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

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

صورة
- - - - -

كيف يمكن تغيرdatatype


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

#1 ابوفهد

ابوفهد

    مشترك

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

تاريخ المشاركة 29 February 2008 - 10:46 PM

ياشباب كيف يمكن تغير نوع البيانات من VARCHAR الى NUMBER علماً بانة يوجد فية بيانات

ودمتم....

Regards

#2 gero

gero

    عضو

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

تاريخ المشاركة 29 February 2008 - 11:01 PM

السلام عليكم

لا اعتقد انك تستطيع ان تغير data type الا عندما يكون الجدول خاليا
وطريقة تحويله هكذا
[codebox]alter table emp
modify employee_id number(9);[/codebox]

تم التعديل بواسطة gero, 29 February 2008 - 11:01 PM.

إن الله لايضيع أجر من أحسن عملا


ORACLE APPLICATION DEVELOPER

LETS SEE WHO IS THE BEST

#3 hanyfreedom

hanyfreedom

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

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

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

ياشباب كيف يمكن تغير نوع البيانات من VARCHAR الى NUMBER علماً بانة يوجد فية بيانات

ودمتم....


علشان تعمل اللى انت عاوزه لازم يكون العمود فارغ تماماً او ان تكون كل قيمه Null ..... اما اذا كان فيه بيانات فانت مجبر على ازالة هذه البيانات الاول و من ثم تحويل ال datatype للحقل لل datatype المراده .

و دمتم

#4 أحمد السيد احمد

أحمد السيد احمد

    مشترك

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

تاريخ المشاركة 09 March 2008 - 11:43 PM

طيب لو العمود ب null ممكن نغير اسمه ..
من لم يخطط للنجاح فهو يخطط للفشل وان لم يقصد

#5 eng.rola

eng.rola

    عضو

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

تاريخ المشاركة 10 March 2008 - 12:16 AM

طالما في بيانات لا اعتقد انه ينفع انه تغير نوعه

بس لو مافي بيانات ممكن تستخدم هذا الكود

alter table "table_name"
modify "feild_name" number(10);

شو المقصود "طيب لو العمود ب null ممكن نغير اسمه "

لو كان تغيير اسم العمود
alter table "table_name"
rename column "column_name" to "new_column_name";

بس لو كان تغيير الفيلد من null ,not null

ALTER TABLE supplier
MODIFY supplier_name varchar2(100) not null;

#6 swsws

swsws

    عضو

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

تاريخ المشاركة 10 March 2008 - 01:32 AM

alter table "table_name"
rename column "column_name" to "new_column_name";


جربت هذا الأمر ... يقول البرزنتيشن .. او السوبرزنتيشن


ما ننفعت معي .... كنت ابي أغير أسم عمود ... مدري هل السبب في اني استخدم اوراكل 9i

#7 hanyfreedom

hanyfreedom

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

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

تاريخ المشاركة 11 March 2008 - 08:48 AM

Rename column(s) in a table

(NEW in Oracle 9i Release 2)



Syntax #1



Starting in Oracle 9i Release 2, you can now rename a column.



To rename a column in an existing table, the ALTER TABLE syntax is:



	ALTER TABLE table_name

	 RENAME COLUMN old_name to new_name;



For example:



	ALTER TABLE supplier

	 RENAME COLUMN supplier_name to sname;



This will rename the column called supplier_name to sname.


#8 swsws

swsws

    عضو

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

تاريخ المشاركة 11 March 2008 - 12:00 PM

يا حلو شوف وش طلع معي


صورة

#9 hanyfreedom

hanyfreedom

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

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

تاريخ المشاركة 11 March 2008 - 12:28 PM

ده اللى طلع معايا :-

SQL> create table Bank(
2 Bname varchar2(11),
3 cardid number);

Table created.

SQL> alter table Bank
2 rename column bname to bnam;

Table altered.

SQL> desc bank
Name Null? Type
----------------------------------------- -------- ------------

BNAM VARCHAR2(11)
CARDID NUMBER


أعتقد انك بتستخدم الاصدار الأول من ال 9i و ليس الأصدار الثانى
لأن خاصية ال Rename Column بدأت من الأصدار الثانى لل 9i
أرجو أن تقوم بعمل هذا الكود :-

select * from v$version;


و ترسل لى الناتج ..... و شكراً

#10 swsws

swsws

    عضو

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

تاريخ المشاركة 11 March 2008 - 02:04 PM

SQL> select * from v$version; BANNER
---------------------------------------------------------
Oracle8i Release 8.1.7.0.0 - Production
PL/SQL Release 8.1.7.0.0 - Production
CORE 8.1.7.0.0 Production
TNS for 32-bit Windows: Version 8.1.7.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production


#11 jamal_rrkk

jamal_rrkk

    عضو نشط

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

تاريخ المشاركة 11 March 2008 - 02:39 PM

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

اخي الكريم

اولا : قم بإضافة عمود جديد للجدول وليكن اسمه مثلا num

ALTER  TABLE  CC  ADD ( NUM  NUMBER(15) ) ;


ثانيا : قم بكتابة الكود التالي بحث يتم فيه تحوبل البيانات من varchar إلي number في العمود الجديد

UPDATE CC SET NUM = TO_NUMBER(VARCH) ;


ثالثا : قم بحذف العمود الذي تم نسخ البيانات منه للعمود الجديد NUM

ALTER  TABLE  CC  DROP  COLUMN   VARCH  ;



جزاكم الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/

#12 hanyfreedom

hanyfreedom

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

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

تاريخ المشاركة 11 March 2008 - 04:17 PM

بالنسبة للأخ jamal_rrkk ..... فشكراً لتعبك و مشاركتك .

و لكن للأسف كودك ليس صحيح :rolleyes: ..... و هذا ما حدث معى :-

SQL> create table CC (
2 id number);

Table created.

SQL> ALTER TABLE CC ADD ( NUM NUMBER(15) ) ;

Table altered.

SQL> UPDATE CC SET NUM = TO_NUMBER(VARCH) ;
UPDATE CC SET NUM = TO_NUMBER(VARCH)
*
ERROR at line 1:
ORA-00904: "VARCH": invalid identifier


لا أعرف ماذا تقصد بالظبط ..... قد يكون كودك صحيح مع اوراكل ال 8i .... أنا لا أعرف صراحة ، فأنا لم أستخدم غير ال 10g وال 11g فقط لا غير.

اما يا أخى العزيز swsws
فأنت لا تستخدم اوراكل 9i ولكنك تستخدم اوراكل 8i ..... و من ثم فلن ينفع تنفيذ خاصية ال Rename Column

أما اذا ارادنا تنفيذ فكرة أخى الكريم jamal_rrkk فسوف يتم تنفيذها كالتالى :-

create table CC (id number);
Table altered.

ALTER TABLE CC ADD ( NUM NUMBER(15) ) ;
Table altered.
ALTER TABLE CC drop column id ;
Table altered.

SQL> desc cc
Name Null? Type
----------------------------------------- -------- ----------

NUM NUMBER(15)


أرجو أن تكون الفكرة واضحة ...... مع تمنياتى لك بالتوفيق

#13 jamal_rrkk

jamal_rrkk

    عضو نشط

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

تاريخ المشاركة 12 March 2008 - 09:08 AM

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

اخي الكريم Hany Freedom


اولا : قم بإضافة عمود جديد للجدول وليكن اسمه مثلا num


اي ليس إنشاء جدول جديد

والمقصود بـ VARCH هو اسم العمود المطلوب تغيير نوع البيانات فيه


جزاكم الله كل خير
قال تعالى :

{ وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ مَا أُرِيدُ مِنْهُم مِّن رِّزْقٍ

وَمَا أُرِيدُ أَن يُطْعِمُونِ إِنَّ اللَّهَ هُوَ الرَّزَّاقُ ذُو الْقُوَّةِ الْمتينُ }

[ الذاريات : 56 : 58 ]


{ وَأْمُرْ أَهْلَكَ بِالصَّلَاةِ وَاصْطَبِرْ عَلَيْهَا لَا نَسْأَلُكَ رِزْقًا

نَحْنُ نَرْزُقُكَ وَالْعَاقِبَةُ لِلتَّقْوَى }

[ طه : 131 ]




سبحان الله والحمد لله والله أكبر


http://tech.groups.y...and_Accounting/