数据库结构操作脚本
来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 05:23 点击:次
/*
数据库操作脚本汇集
*/
--删除重复数据
-------------删除重复数据--------------------------
declare
pvar_i_cunt integer;
sStockcode varchar2(20);
sExchange varchar2(10);
sSql varchar2(1000);
begin
/*
删除重复数据:
用一个临时表保存重复数据,但只记录重复数据中的一条(rowid最大的一条),然后将这表来关联实际表,
把重复数据中rowid不是最大其它数据删除,这样就剩下一条了。
*/
--创建一个临时表来保存重复数据(这个表里面:只记录其中一条--rowid最大的一条)
select count(1) into pvar_i_cunt from user_tables s where s.TABLE_NAME='TMP_STOCKCOMPS';
if pvar_i_cunt>0 then
execute immediate 'drop table TMP_STOCKCOMPS';
end if ;
execute immediate ' create table TMP_STOCKCOMPS
(
row_id ROWID,
-----------下面字段是主键字段----------------
vc_stock_code VARCHAR2(20) not null,
vc_exchange VARCHAR2(20) default '' '' not null
)' ;
for cur in (select a.cn, a.vc_stock_code, vc_exchange
from (select count(*) cn, s.vc_stock_code, s.vc_exchange
from STOCKCOMPS s
group by s.vc_stock_code, s.vc_exchange) a
where a.cn > 1) loop
sStockcode := cur.vc_stock_code;
sExchange := cur.vc_exchange;
--取出重复数据的其中一条(max(rowid)那条)
sSql :=' insert into TMP_STOCKCOMPS '
||' (row_id, vc_stock_code, vc_exchange) '
||' select max(a.rowid), a.vc_stock_code, a.vc_exchange '
||' from STOCKCOMPS a '
||' where a.vc_stock_code = '''|| sStockcode||''''
||' and a.vc_exchange = '''||sExchange||''''
||' group by&n
数据库操作脚本汇集
*/
--删除重复数据
-------------删除重复数据--------------------------
declare
pvar_i_cunt integer;
sStockcode varchar2(20);
sExchange varchar2(10);
sSql varchar2(1000);
begin
/*
删除重复数据:
用一个临时表保存重复数据,但只记录重复数据中的一条(rowid最大的一条),然后将这表来关联实际表,
把重复数据中rowid不是最大其它数据删除,这样就剩下一条了。
*/
--创建一个临时表来保存重复数据(这个表里面:只记录其中一条--rowid最大的一条)
select count(1) into pvar_i_cunt from user_tables s where s.TABLE_NAME='TMP_STOCKCOMPS';
if pvar_i_cunt>0 then
execute immediate 'drop table TMP_STOCKCOMPS';
end if ;
execute immediate ' create table TMP_STOCKCOMPS
(
row_id ROWID,
-----------下面字段是主键字段----------------
vc_stock_code VARCHAR2(20) not null,
vc_exchange VARCHAR2(20) default '' '' not null
)' ;
for cur in (select a.cn, a.vc_stock_code, vc_exchange
from (select count(*) cn, s.vc_stock_code, s.vc_exchange
from STOCKCOMPS s
group by s.vc_stock_code, s.vc_exchange) a
where a.cn > 1) loop
sStockcode := cur.vc_stock_code;
sExchange := cur.vc_exchange;
--取出重复数据的其中一条(max(rowid)那条)
sSql :=' insert into TMP_STOCKCOMPS '
||' (row_id, vc_stock_code, vc_exchange) '
||' select max(a.rowid), a.vc_stock_code, a.vc_exchange '
||' from STOCKCOMPS a '
||' where a.vc_stock_code = '''|| sStockcode||''''
||' and a.vc_exchange = '''||sExchange||''''
||' group by&n
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>