你可以先把类型为varchar的字段该名,再加以个字段为要该为date的字段名相同, 二, 1,测试表create table TEST(ID NUMBER not null, NAME VARCHAR2(20))ALTER TABLE SCOTT.TEST RENAME TO TEST1--修改表名 ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME1 --修改表列名 ALTER TABLE SCOTT.TEST MODIFY NAME1 NUMBER(20) --修改字段类型 ALTER TABLE SCOTT.TEST ADD ADD RESS VARCHAR2(40) --添加表列 ALTER TABLE SCOTT.TEST DROP COLUMN RESS--删除表列三, ALTER TABLE gtsysusr.SCHEDULE_CONTENTS MODIFY CONTENTS_ID NVARCHAR2(64) 另建一个表,把varchar改成date,然后用SQL转一下插入,然后删除原表,然后改目标表名字。应该可以了。 四,
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的盘龙网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
好像不能直接转,要把varchar2
类型
先转成long
SQL
desc
test;
Name
Type
Nullable
Default
Comments
----
------------
--------
-------
--------
COL
VARCHAR2(10)
Y
SQL
alter
table
test
modify
col
long;
Table
altered
SQL
desc
test;
Name
Type
Nullable
Default
Comments
----
----
--------
-------
--------
COL
LONG
Y
SQL
alter
table
test
modify
col
clob;
Table
altered
SQL
desc
test;
Name
Type
Nullable
Default
Comments
----
----
--------
-------
--------
COL
CLOB
Y
--补充
楼主上面那做法。好像
没办法
一条
语句
完成
增加
字段
--update---删原来字段---改
字段名
只能一步步的做
还有刚才先改long在改clob字段没成功,我估计是
这张表现有数据不能做
类型转换
的原因吧。
可以先创建
张表
备份
表在原数据放到这表中,然后再修改原表
字段类型,最后在把数据导入原表
试试看吧
因为业务需要 修要修改某个字段数据类型有number( ) 变为number( )型
要是没有数据的话直接用以下语句即可
alter table tb_test modify permile number( );
但是有数据的话 就不能用上面方法了
alter table tb_test add permile_temp number( )
update tb_test set permile_temp=permile;
alter table drop column permile;
alter table test rename column permile_temp to permile;
这种方法会使列名发生变化 而且字段顺序增加 有可能发生行迁移 对应用程序会产生影响
以下方法是比较好的方法
不用使列名发生变化 也不会发生表迁移 但这个有个缺点是表要更新两次
如果数据量较大的话 产生的undo和redo更多 前提也是要停机做
要是不停机的话 也可以采用在线重定义方式来做
以下是脚本:
alter table tb_test add permile_temp number;
Add/modify columns
alter table tb_test modify PERMILE null;
update tb_test set permile_temp=permile permile=null;
mit;
alter table tb_test modify permile number( );
update tb_test set permile=permile_temp permile_temp=null;
mit;
alter table tb_test drop column permile_temp;
alter table tb_test modify PERMILE not null;
lishixinzhi/Article/program/Oracle/201311/17913
用alter语句进行修改。
语法:
alter
table
表名
modify
字段名
字段类型(字段长度);说明:如果是date等没有长度的类型,字段长度部分可以省略。
如:目前test表属性如下
要将name列的字段类型改为date类型,可用如下语句:
alter
table
test
mo...