oracle 8i中不可以,9i中可以使用rename实现
8i中如果没有数据的话可以先删除,在添加
如果有数据,可以按以下方法实现
alter table 表名 add 新列名 类型
update 表名 set 新列名=原来的列名
alter table 表名 drop column 原来的列名

解决方案 »

  1.   

    使用的ora8171数据库,采用相应的ora817forwin客户端,启动
    DBA studio,以system/manager在normal登录,选中要列
    进行删除时,提示:
    ORA-00406: COMPATIBLE parameter needs to be 8.1.0.0.0 or greater,
    列没有删除。
    这错误是指什么?
      

  2.   

    bluecetacean(蓝鲸):
    我按照你的办法做了,现在表中的t1列没有数据,但其他列有数据,
    alter table 表名 add 新列名 类型
    update 表名 set 新列名=原来的列名
    这两步没有问题,进行
    alter table 表名 drop column 原来的列名
    还是报错:
    ORA-00406: COMPATIBLE parameter needs to be 8.1.0.0.0 or greater.
      

  3.   

    这个问题其实很简单就可以解决:
    1、原表:
        T1(F1 NUMBER(10),F2 VARCHAR2(20)
    2、创建一个新表,在这个表中,把你要修改的字段名改过来。
        T2(F1 NUMBER(10),FLD2 VARCHAR2(30)  --注意字段类型、长度,范围只允许比原来的更大。
    3、用一下语句就可以了
    Insert Into T2 Select * From T1
    4、给我加点分吧!
      

  4.   

    哈哈,这个方法早就想到啦。
    不过t1是重要的应用表,数据量很大,不是迫不得已,我不想
    重新建表导换数据。t1列是以前预留的字段,为空,现在想用上,
    原来以为列的更名很容易,现在变成了麻烦。
    bluecetacean(蓝鲸) 的办法应该是可行的,但是出现了上述的错误
    不知道是怎样造成的? 
      

  5.   

    在init.ora中添加或修改参数:
    compatible = 8.1.0
      

  6.   

    http://www.itpub.net/showthread.php?s=&threadid=54019&perpage=20&pagenumber=2yes,当然可以改,请参考上文