当前位置:  数据库>oracle

Oracle数据更改后出错的解决方法

    来源: 互联网  发布时间:2014-10-04

    本文导语:  在使用Oracle的过程中我们给系统创建了两个用户:com和comtest。前者存放的是正式库数据,后者存放的测试库数据。它们都有一个taw_rm_user表,存放了使用该系统的用户基本信息,于是就是把其中的password字段全部改成了123456。 D...

在使用Oracle的过程中我们给系统创建了两个用户:com和comtest。前者存放的是正式库数据,后者存放的测试库数据。它们都有一个taw_rm_user表,存放了使用该系统的用户基本信息,于是就是把其中的password字段全部改成了123456。

DMP备份文件创建后,经过一段时间创建了几个新的用户,并且有些旧的用户的其他信息也已经更改了。但是需要把旧用户的密码恢复到从前,直接把备份文件中的taw_rm_user表导入com用户下是肯定不行的。经过分析后,得到了一个解决方案。大致思路是:

1. 将测试库的taw_rm_user表用CREATE TABLE AS语句导到一个临时的备份表中(测试库中的用户表也不能乱改);
2. 再将taw_rm_user表删除;
3. 然后将DMP备份文件的taw_rm_user表用IMP命令导入到comtest下;
4. 再自己编写一个PL/SQL程序块,通过使用游标循环,将这个新导入的表中的password字段更新到com.taw_rm_user表的对应记录中。(注意,这里只更新对应记录,对新加入的用户记录不作任何修改);
5. 再将之前备份的taw_rm_user表恢复到comtest下即可。

其中使用的关键SQL语句如下:

-- 备份测试库中的taw_rm_user表
create table comtest.taw_rm_user_bak
as
select * from comtest.taw_rm_user
-- 恢复正式库中的taw_rm_user.password字段
declare
rec_comtest comtest.taw_rm_user%rowtype;
cursor cur_comtest is
select * from comtest.taw_rm_user;
begin
open cur_comtest;
loop
fetch cur_comtest into rec_comtest;
exit when cur_comtest%notfound;
update com.taw_rm_user
set com.taw_rm_user.password=rec_comtest.password
where com.taw_rm_user.user_id=rec_comtest.user_id;
end loop;
close cur_comtest;
commit;
end;

这样就可以实现在不更改其他所有信息的情况下,将所有旧用户的密码恢复到从前。


    
 
 

您可能感兴趣的文章:

  • Linux下安装oracle11gr2出错,求帮助!
  • linux7.1 安装 oracle8.1.7 出错
  • Linux下安装了Oracle10g,启动出错
  • linux下oracle的console出错,怎么办?
  • RD9安全oracle817出错?
  • Oracle数据库并行查询出错的解决方法
  • AS3安装Oracle 9.2.0前,打补丁出错,导致系统无法引导.大侠们帮忙
  • linux下安装oracle出错啦!!!不知道怎么解决,帮忙看看好吗?
  • Linux下oracle如何 建库建表出错???
  • Linux下安装了Oracle10g,启动出错 iis7站长之家
  • 一个连oracle的servlet,oracle在另一台机器上,为何出错??
  • 快一个月了,我参考了所有的安装帖子,下了所有的补丁,Oracle安装依然出错。为什么??想哭。
  • rs.last()为什么会出错?(jsp,jrun,jdbc,oracle)
  • jsp向oracle数据库插入图片出错!急!为什么?
  • 安装oracle8.1.7 在linux9.0上出错
  • solaris 10 下用OCCI操作oracle 10g链接出错!!!
  • Oracle 11gR2 netca 无法启动出错解决
  • 更改Oracle数据库的归档模式
  • linux-3ES-13.9.5安装oracle10g时更改/etc/sysctl.conf没有kernel.shmmax,kernel.shmmni
  • ORACLE查询表最近更改数据的方法
  • Oracle数据库进程数与会话数的更改
  • 更改Oracle数据库到归档模式
  • Oracle 中如何更改用户名
  • oracle 更改数据库名的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解决oracle用户连接失败的解决方法
  • Oracle Connect to Idle Instance解决方法
  • Linux下安装Tomcat后与Oracle冲突的解决
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • 安装Oracle加载数据库错误areasQueries的解决
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • Linux安装Oracle 11时报错DISPLAY解决方案
  • Linux下Oracle安装时遇到的问题及解决
  • 简单的Oracle小问题解决
  • oracle中文乱码解决的办法
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • Oracle安装后8080和80端口被占用的解决办法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • Linux下命令行启动oracle时报错的解决
  • 急!急!jbuilder中新建oracle数据源的问题,解决立即给分!
  • Linux系统下安装Oracle X11错误解决办法
  • Linux中安装Oracle乱码问题的解决
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3