Oracle更新数据为MD5加密数据
业务场景:在做安全等保问题,需要将原来保存的用户明文密码改成md5加密的密文密码,数据库是Oracle的
首先Oracle要管理员账号登录才可以调md5函数,具体函数是DBMS_OBFUSCATION_TOOLKIT.MD5,网上很多教程都是基于这个函数然后进行封装,代码如
CREATE OR REPLACE FUNCTION MD5(
passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN LOWER(retval);--大小写转换
END;
然后业务场景是要将原来的明文密码改成密文密码,同事用了游标去写,不过我没有用游标也可以写,思路都是遍历原来的数据,然后全部更新
游标方法参考代码:
declare
cursor c_user is --游标
SELECT u.u_name,u.U_PASSWORD from USERS u;
top_ten number:=0;
begin
for r_user in c_user loop --循环
--更新USERS的表
dbms_output.put_line(r_user.u_name);
update USERS set U_PASSWORD =
(select md5(r_user.U_PASSWORD) from dual)
where U_NAME = r_user.u_name;
end loop;
end;
不用游标或者存储过程的SQL代码参考:
update Users gu
set gu.u_password =
(select md5(gu.u_password) from dual);
Oracle更新数据为MD5加密数据的更多相关文章
- ORACLE更新数据时如果有就更新没有就插入
SQL写法: begin update table_name set salary = 10000 where emp_id = 5; if sql%notfound then insert into ...
- Oracle 常用操作【01】修改、更新数据
1. oracle 修改表名.列名.字段类型.添加表列.删除表列 alert table scott.test rename to test1--修改表名 alter table scott.tes ...
- 在Oracle中更新数据时,抛出:ORA-01008: not all variables bound
在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都 ...
- oracle批量新增更新数据
本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...
- Oracle CDC (Change Data Capture)更新数据捕获——概述
Change Data Capture能高效识别并捕获数据的插入.修改和删除,使更新数据供个人或应用使用. CDC从oracle 9i开始引入,//TODO 在11G R2之后的版本里将取消支持,被O ...
- ORACLE基本SQL语句-添加更新数据函数篇
一.添加数据 /*添加数据*/insert into STU values('stu0004','赵一',18,1,"kc0004");insert into STU(STU_ID ...
- oracle大数据量更新引发的死锁问题解决方法及oracle分区和存储过程的思考
前言 前几天上午在对数据库的一张表进行操作的时候,由于这张表是按照时间的一张统计表,正好到那天没有测试数据了,于是我想将表中所有的时间,统一更新到后一个月,于是对80w条数据的更新开始了.整个过程曲折 ...
- ORACLE / PLSQL 插入或更新数据的几种方式
第一种,直接用values 插入 ---日期需要用TO_DATE操作 INSERT INTO EMP (EMPNO,ENAME ,JOB,MGR, HIREDATE , SAL ,COMM, DEPT ...
- 使用JDBC处理Oracle大数据
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
随机推荐
- 【C语言天天练(九)】动态内存分配
引言:数组的元素存储于内存中连续的位置上.当一个数组被声明时.它所须要的内存在编译时就被分配. 可是,我们能够使用动态内存分配在执行时为它分配内存. 一块内存的生命周期能够分为四个阶段:分配.初始化. ...
- 【Mongodb教程 第十九课 】PHP与MONGODB的条件查询
与普通的关系型数据库类似,在对数据的删.改.查的时候,会用到查询条件,如mysql中的 where… 而MongoDB中,经过php来做的所有的操作指令都是用array来包裹的: MongoColle ...
- Ubuntuserver版安装
近期因为工作的须要.又一次部署server.安装了Ubuntuserver版本号,依据当时遇到的一些问题,整理了下,为方便以后的使用做个记录. 因为直接安装server端.无法 ...
- 第一次OllyDbg逆向记录(分析思路和注意点&其他文章)
OllyDbg 操作菜单栏.工具栏.快捷键 C++调用加强 目录 OllyDbg 操作菜单栏.工具栏.快捷键 1 一. 载入观察 1 1.静态载入观察: 1 2.OD动态观察 ...
- 文本分析实例---QQ聊天记录分析
对QQ聊天记录进行分析,由于每天产生的聊天记录比較多,所以选取的是从2月份整月的聊天记录数据.分析要产生的结果有三个,聊天记录中发消息的人前top15.统计24小时时间段那个时间段发贴人最多,还有对消 ...
- MySQL优化之——触发器
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46763665 触发器是一个特殊的存储过程,不同的是存储过程要用CALL来调用,而触 ...
- PPAPI与Browser间使用AsyncIPC通信
採用AsyncIpc这个项目(https://github.com/hicdre/AsyncIpc).来完毕PPAPI Plugin进程与Browser进程的通信. foruok原创.如需转载请关注f ...
- android 提示
1.Toast: Toast toast=new Toast(context); Toast.makeText(context, text, duration);//返回值为Toast toast.s ...
- 在docker里查看java进程
先使用命令查看docker的运行进程 docker ps [root@localhost logs]# docker ps CONTAINER ID IMAGE ...
- android adb源码分析(5)【转】
本文转载自:http://blog.csdn.net/xgbing/article/details/52096880 本篇以“adb devices"命令为例,跟踪代码的执行流程. (1) ...