سؤال

الجدول: العملاء

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB

اريد تغيير DATA العمود من CLOB إلى `varchar2 (1000)

انا احاول ALTER TABLE customers MODIFY DATA VARCHAR2 (1000) ايضا

ALTER TABLE customers MODIFY (DATA VARCHAR2 (1000))

ايضا

alter table customers  modify
(data VARCHAR2(4000))

تعمل هذه عادة إذا كانت نوع البيانات ليست عبارة عن clob لكنني أحصل على ORA-22859 لأنني أستخدم Oracle Toad/Apex.

هل كانت مفيدة؟

المحلول

يمكنك تجربة هذا:

  1. أضف عمودًا جديدًا مثل varchar2

    alter table my_table add (new_column varchar2(1000));

  2. تحديث اسم Clob إلى عمود Varchar2 ؛

    update my_table set new_column=dbms_lob.substr(old_column,1000,1);

بعد، بعدما اختبار بياناتك:

  1. إسقاط عمود CLOB

    alter table my_table drop column old_column

  2. أعد تسمية عمود Varchar2 إلى اسم عمود Clob

    alter table my_table rename column new_column to old_column

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top