Oracle不同用户和表空间之间的数据备份与还原
l 直接使用备份还原语句
1、 EXP备份需要的数据文件(GGK.dmp)
2、 新建表空间GGKCS1,用户GGKCS1,执行还原语句
imp GGKCS1/GGKCS1 FILE=D:\tempdmp\GGK.dmp LOG=D:\tempdmp\GGK.log fromuser=GGK touser=CSGGK1 tablespaces= GGKCS1 statistics=none
(fromuser不需要FULL=Y)
l 使用PLSQL Developer
1、 使用原用户登陆数据库;使用PLSQL Developer导出数据为pde格式
2、 选择PL/SQL Developer;命名导出文件名和选择文件存放位置;点击EXPORT导出数据。
选择‘是’
3、 数据导出后;使用需要导入数据的用户登陆PLSQL Developer,导入数据
4、 选择之前导出的数据文件,import
三、Oracle 常用函数
1、Replace(列名,’被替换字符’,’替换字符’)
Update fc_h_qsdc set bdcdyh=replace(bdcdyh,’GB’,’JC’)—将fc_h_qsdc表的bdcdyh字段中的GB替换成JC(用JC替换fc_h_qsdc表bdcdyh字段中的GB)
Select replace(bdcdyh,’GB’,’JC’) from fc_h_qsdc
Replace(列名,’被替换字符’,’’)--清除字段中的字符(用null替换掉字符;类似清除)
Update fc_h_qsdc set bdcdyh=replace(bdcdyh,’GB’,’’)—将fc_h_qsdc表的bdcdyh字段中的GB删除
2、substr(字符串,截取开始位置,截取长度)
select substr(bdcdyh,0,19) from fc_h_qsdc—从第一位截取bdcdyh字符串19位即zdtybm ( 0和1都是表示截取的开始位置为第一个字符 )
update fc_h_qsdc set zdtybm=substr(bdcdyh,0,19)
update dj_djb set zsxlh=’D’|| substr(SLBH,3,8) || substr(SLBH,12,3)
--bdcdyh=D+SLBH(3到10位)+SLBH(12到14位)
Substr(字符串,-5,3)--截取的开始位置为字符串右端向左数第i个字符,截取长度为3
3、instr(string1, string2 [, start_position [, nth_appearance ] ] )
INSTR(源字符串,目标字符串,起始位置,匹配序号)--起始位置(缺省)默认1 ; 匹配序号(缺省)默认1,不能为0或负数
--从 目标字符串 第(起始位置)位 开始 查 目标字符串 在 源字符串 中 第(匹配序号)次出现的位置
-- 如果String2在String1中没有找到,instr函数返回0
--起始位置为正,从左到右开始检索,如果此参数为负,从右到左检索;匹配序号
--检查String1中是否包含String2,如果返回0表示不包含,否则表示包含。
SELECT slbh,instr(SLBH,'2016') FROM DJ_SJD WHERE instr(SLBH,'2016') > 0
--选择SLBH 和 2016 在 SLBH中第 1次 出现的位置(没有出现函数结果是0)
SELECT slbh FROM DJ_SJD WHERE instr(SLBH,'2016') > 0
=SELECT slbh FROM DJ_SJD WHERE slbh like '2016'
--查询SLBH包含 2016的
--查 dj_tsgl 中 djzl 值 在 ‘预告,权属‘ 中的记录( “预告,权属”是一个整体)
SELECT * FROM dj_tsgl WHERE instr('预告,权属',djzl)>0
=select * from dj_tsgl where djzl in ('预告','权属')