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 ('预告','权属')

 

posted on 2022-08-10 08:35  root-123  阅读(462)  评论(0编辑  收藏  举报