数据库操作
--修改字段类型
--oracle
1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:
alter table tb modify (name nvarchar2(20));
2、假设字段有数据,则改为nvarchar2(20)可以直接执行:
alter table tb modify (name nvarchar2(20));
3、假设字段有数据,由nvarchar2则改为clob不可以直接执行:
alter table tb modify (name long);
alter table tb modify (name clob);
--创建一张表结构与另一张表结构相同数据也相同(不包括默认值、主键等等)
--sqlserver
select oldTable.a,oldTable.b into newTable(newTable.x1,newTable.x2) from oldTable where ...
--oracel
create table a2 as select * from a
--根据一张表更新另一张表数据
-----sql sqlserver
update t_yfwebs_ques set t_yfwebs_ques.answer=t_yfwebs_ques2.anwer1 from t_yfwebs_ques2,t_yfwebs_ques
where t_yfwebs_ques.ques_id=t_yfwebs_ques2.ques_id
---oracle
merge into t_yfwebs_ques a
using t_yfwebs_ques2 b
on(a.ques_id = b.ques_id)
WHEN MATCHED THEN
UPDATE
SET a.answer = b.anwer1;
commit;
--(自己的经验)将有数据的表中的nvarchar2 改为 varchar
--先复制一张一模一样的表
create table T_COLLCOMB2 as select * from T_YFCW_COLLCOMB
--将修改字段的表数据删除
delete T_COLLCOMB;
--修改表字段
alter table T_COLLCOMB modify COMB_NAME VARCHAR2(1000);
alter table T_COLLCOMB modify COLLCOMB_REMARK VARCHAR2(2000);
alter table T_COLLCOMB modify COLLCOMB_STATE VARCHAR2(10);
alter table T_COLLCOMB modify IS_DEL VARCHAR2(3);
--向表中添加原来的数据
insert into T_COLLCOMB select * from T_YFCW_COLLCOMB2;
--删除复制的表
drop table T_COLLCOMB2;