帖主恐怕要哭了!^o^ 不清楚truncate table(截掉)是干什么的?一试才知道,就是delete from table啊!aaa!我可怜的数据! 这样呢:上级数据(表模式)导出,删数据,下级数据导入,上级数据再导入! 三次,好慢的效率,如果上级数据多的话!
to hjunxu(hjun) 因情况而定,有些用户下面的大表不需要每次都导入,导整个用户就不划算了
你看这样可以吗 一、创建一个新表table1,imp你的数据到这个新表table1中。假设你的旧表是table; 二、编写一个存储过程,实现以下功能: CREATE OR REPLACE PROCEDURE DaoShu() IS V_SHU NUMBER; CURSOR c1 IS SELECT 唯一标记 FROM TABLE1; Begin OPEN C1; LOOP EXIT WHEN C1%NOTFOUND; SELECT COUNT(*)INTO V_SHU FROM TABLE WHERE 唯一标记=C1; IF V_SHU>0 THEN DELETE TABLE WHERE WHERE 唯一标记=C1; END IF; INSERT INTO TABLE (SELECT * FROM TABLE1 WHERE 唯一标记=C1;) CLOSE C1; END;
只好先truncate table,再导入
要么,你先把所有的表drop掉,也可以
只好先truncate table,再导入
______________
能给解释一下如何用truncate table吗?谢谢!
truncate table yourtable2;然后运行(这个可以做成一个计划任务):
sqlplus system/manager@yourdb @sqlfile
truncate table yourtable2;
imp userid=tydy/mytydy@tydyjds file=c:\back\tydy.dmp log=c:\back\tydy.log fromuser=tydy touser=tydy ignore=y
________是这样吗?然后运行(这个可以做成一个计划任务):
sqlplus system/manager@yourdb @sqlfile
————————
truncate table 是把表中的数据清空还是设置成可冲突、可覆盖状态?若是前者的话,以前的数据呢?
如果可以,exp命令怎么执行,写在sqlplus中吗?
简单直接,如应许把用户都删除掉。
:)
不清楚truncate table(截掉)是干什么的?一试才知道,就是delete from table啊!aaa!我可怜的数据!
这样呢:上级数据(表模式)导出,删数据,下级数据导入,上级数据再导入!
三次,好慢的效率,如果上级数据多的话!
因情况而定,有些用户下面的大表不需要每次都导入,导整个用户就不划算了
一、创建一个新表table1,imp你的数据到这个新表table1中。假设你的旧表是table;
二、编写一个存储过程,实现以下功能:
CREATE OR REPLACE PROCEDURE DaoShu()
IS
V_SHU NUMBER;
CURSOR c1 IS SELECT 唯一标记 FROM TABLE1;
Begin
OPEN C1;
LOOP
EXIT WHEN C1%NOTFOUND;
SELECT COUNT(*)INTO V_SHU FROM TABLE WHERE 唯一标记=C1;
IF V_SHU>0 THEN
DELETE TABLE WHERE WHERE 唯一标记=C1;
END IF;
INSERT INTO TABLE (SELECT * FROM TABLE1 WHERE 唯一标记=C1;)
CLOSE C1;
END;