oracle怎么备份多张表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎么备份多张表?相关的知识,希望对你有一定的参考价值。

参考技术A 如果,备份几张表的数据,那么,可以备份到dmp文件中,用命令导出表比较快捷。\\x0d\\x0a语句如下:\\x0d\\x0aexp test/test@ora100G file=c:\17.dmp tables=(tb1,tb2,tb3,...)\\x0d\\x0a开始,运行,在弹出的“运行”框里,粘贴上面的语句,并修改,就可以备份。\\x0d\\x0a解释一下这个语句(因为今天是17号,所以,就拿17.dmp作为备份文件的名称吧!):\\x0d\\x0aexp:导出。\\x0d\\x0atest/test@ora100g:“test/test”是用户名和密码;“ora100G”是“网络服务名”。\\x0d\\x0afile=c:\17.dmp:“c:\17.dmp”是保存到本地的全文件路径。\\x0d\\x0atables=(tb1,tb2,tb3,...):“(tb1,tb2,tb3,...)”是你选择需要备份的那些表的名称。\\x0d\\x0a因为,备份的时候一般都写一个日志备份文档,以方便以后查找,所以,原语句可以改写成\\x0d\\x0aexp test/test@ora100G file=c:\17.dmp tables=(tb1,tb2,tb3,...) log=c:\17.text

【oracle】delete语句同时删除多张表(在线等)

我想用一条delete语句同时删除两张表的信息。
表a ida name
1 test

表b idb local
1 wh
1 sh
1 sz

目的:同时从两张表里删除id为1的数据
这是我写的sql
delete from a inner join b on a.ida = b.idb where a.ida=1

请各位帮我看看。怎么都不对哦。

谢谢。

如果你是要删除2长表里的数据,可以分步做啊:
delete from a where a.ida=1;
delete from b where b.idb=1;
commit;
像你那种做法,是不可行的,不符合oracle的语法。oracle只允许从一张表中删除数据。你是不是想删除A表中的数据(B表不变),但要这些数据存在于B表中,可以使用:
DELETE FROM a WHERE (a.ida, a.name) IN (SELECT a.ida, a.name FROM a ,b where a.ida=b.idb);
COMMIT;
这些语句我都在oracle92中测试过,不知道你究竟需要做什么?
参考技术A delete from a where a.ida=1
delete from b where b.idb=1

这样要写两句
请描述你的具体要求

如果你的表的ID字段都是有规律的ida,idb,...即id+表名
则可以这样删除所有表的id表名=1的数据

declare @SqlStr varchar(8000)
select @SqlStr=''
select @SqlStr=@SqlStr+'delete from ['+[name]+']'+' where id['+[name]+']=1'+CHAR(10)
from sysobjects where Xtype=N'U'
exec(@SqlStr)
参考技术B delete (select a.ida as ida from a inner join b on a.ida = b.idb ) where ida = 1
这样试试看
参考技术C 你那样写的是不成立的啊.
这样不就可以了吗?
str=" delete from a where a.ida=1 "
str+="delete from b where b.idb=1 "
兄弟快快吧!

以上是关于oracle怎么备份多张表?的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?

oracle多张表可以都用一个序列吗?

【oracle】delete语句同时删除多张表(在线等)

oracle 备份某张表的全部数据

oracle 备份

oracle数据库备份exp命令