alter tablename modify f1 varchar2不可以吗?

解决方案 »

  1.   

    sbaz(万神渡劫) ( ) 信誉:100 
    如果表中被修改的字段有数据不可一这么改
      

  2.   

    比如你开始可以CREATE TABLENAME1 AS SELECT * FROM TABLENAME
    改了后再用DELETE * FROM TABLENAME
    INSERT INTO TABLENAME SELECT * FROM TABLENAME1
    数字会强制转换成VARCHAR2的.
      

  3.   

    如果你不想让它强制转换就自己用TO_CHAR转换吧.
      

  4.   

    1 create table newtablename as select * from yourTable2 dorp yourtable3 create youertable(按照你的要求创建的新表,名字和以前一样)
    4 insert into youertable (col1,col2,col3,f1,....) select col1,col2,col3,to_char(f1),... from newtablename
      

  5.   

    让水晶报表的开发变成乐趣!
    让水晶报表的开发效率提高十倍以上!
    让开发出的水晶报表适用性提高十倍以上!
    赶快去看看"捷报Web报表平台"吧!它封装了大量的底层功能,如:Web发布,权限管理,
    报表参数控制,Excel/PDF/Word/Html等格式转换,
    定时运行,访问监测,报表数据保存,报表共享,
    Web在线帮助,内嵌多语种支持,
    等等。使您可以更加专注于报表的业务逻辑。
    在线演示地址: http://demo.SharpReport.com.cn
      

  6.   

    插嘴问一下, jsnicle 的办法我觉得可以实现楼主的要求,但是在数据量大的时候,会不会很慢啊?
    毕竟相当于把全表的数据insert到一个新的空表中……
      

  7.   

    1、先修改你的表
    alert table add (new varchar2(50));
    update your_table_name set new = f1;
    alter table your_table_name modify (new varchar2(50) not null);
    alter table test drop (f1);
    2、如上法泡制,再新建f1列即可。
      

  8.   

    哦,刚才忘了一句,最后还要删除 new 这个列
      

  9.   

    create newtable as select * from oldtable
    drop oldtable
    create table newtable1
    insert into newtable (col1,col2....to char(fl)) select * from newtable