ORCLE通用SQL
1. 根据另一个表字段更新当前表字段
2. 去重
3. 复制表
4. 数据闪回
5. 修改字段数据类型
程序员翻身
1. 根据另一个表字段更新当前表字段
update tableA a
set a.name = (select distinct b.ennmcd from tableB b where b.id = a.id)
where a.name is null;
2. 去重
select *
from (select t.*, row_number() over (partition by t.id order by t.createTime desc) rw
from tableName t) t1
where t1.rw = 1
3. 复制表
create table TABLE_A_BAK as select * from TABLE_A;
4. 数据闪回
--1、启动表的row movement特性
ALTER TABLE TABLENAME ENABLE ROW MOVEMENT;
--2、闪回指定时间的快照
FLASHBACK TABLE TABLENAME TO TIMESTAMP
TO_TIMESTAMP('2022-05-25 10:00:00','yyyy-mm-dd hh24:mi:ss');
--3、关闭表的row movement功能
ALTER TABLE TABLENAME DISABLE ROW MOVEMENT;
5. 修改字段数据类型
/*修改原字段名name为name_tmp*/
alter table TABLE_NAME rename column parent_id to parent_id_tmp;
/*增加一个和原字段名同名的字段name*/
alter table TABLE_NAME add parent_id varchar2(15);
/*将原字段name_tmp数据更新到增加的字段name*/
update TABLE_NAME set parent_id=trim(parent_id_tmp);
/*更新完,删除原字段name_tmp*/
alter table TABLE_NAME drop column parent_id_tmp;
<a id="jump_8"></a>