环境:11g
准备知识:
用到了sys.dbms_obfuscation_toolkit.md5
看源码定义:

    SUBTYPE varchar2_checksum IS VARCHAR2(16);SUBTYPE raw_checksum IS RAW(16);PROCEDURE MD5(input    IN  RAW,checksum OUT raw_checksum);FUNCTION MD5(input    IN  RAW)RETURN raw_checksum;PROCEDURE MD5(input_string    IN     VARCHAR2,checksum_string    OUT varchar2_checksum);FUNCTION MD5(input_string    IN     VARCHAR2)RETURN varchar2_checksum;

这里subtype是什么?

--SUBTYPE 主要是定义一个变量类型,方便批量修改
--也可以自定义范围DECLARE-- 定义一个 rate 数据类型,它的父类型是 NUMBER-- rate 是 NUMBER(6, 4) 的另一个名字,和 NUMBER(6, 4) 没有任何区别SUBTYPE type1 IS NUMBER(6, 4);-- 定义一个 test 数据类型,不允许 NULL 值SUBTYPE type2 IS NUMBER(3, 1) NOT NULL;v_1 type2:=13;-- 定义一个 test2 数据类型,它的值得范围是 -100 到 100SUBTYPE type3 IS PLS_INTEGER RANGE -100..100;v_2 type3;
BEGINv_2:=101;  null;
END;
/

开始调用:
方式1:直接调用

  drop table   md5_tab;create table md5_tab(md5 varchar2(32),name varchar2(10)); --直接调用select utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => 'ysy')) from dual;--直接插入 insert into md5_tab(md5) values(utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => 'ysy')));   --直接更新update md5_tab aa set aa.md5=utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => md5));  

方式2:函数调用

1.外面创建函数create or replace function md5(input varchar2)return varchar2 asbeginreturn  lower(utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => input)));end; --  可直接作用于sql上面.没问题
beginupdate md5_tab aa set aa.md5=md5('ysy');
end;2.如果只是临时使用怎么处理
-- md5默认32位
declarev_md varchar2(32);function md5(input varchar2)return varchar2 asbeginreturn  utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => input));end; begin--pragma inline(f, 'YES'); --需要用一个临时变量接受局部函数的值,因为局部函数无法直接使用在sql上面v_md:=md5('ysy');update md5_tab aa set aa.md5=v_md;
end;--如果要批量更新呢,用一个变量接受就不太合适了
--因为局部函数无法直接使用在sql上面
--所以只能使用在外面定义的函数
declarebegin--报错   PLS-00231: 函数 'MD5' 不能在 SQL 中使用--select md5('ysy') into v_md from dual;--这里可结合for循环使用update md5_tab aa set aa.md5=utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => md5)),   aa.name='aa';
end;

oracle md5如何调用相关推荐

  1. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  2. oracle 定时任务 job 调用存储过程有回到输出参数(含out参数)

    oracle 定时任务 job 调用存储过程有返回输出参数(含out参数) 因前台调用一个含有OUT参数的存储过程,同时在JOB里也想调用同一个存储过程,不想将OUT参数去掉重新建一个存储过程再被JO ...

  3. Oracle MD5加密

    Oracle MD5加密 CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN VARCHAR2ISretval varchar2(32); ...

  4. oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)

    先对上一篇调用SQLServer的存储过程作一点补充,就是如果存储过程里有Insert,update,delete等操作,最后返回结果集,按示例代码有可能得不到数据,因为返回的数据有可能不在第一个结果 ...

  5. Oracle存储过程及调用

    Oracle存储过程语法 Oracle的存储过程语法如下: ? 1 2 3 4 5 6 create procedure 存储过程名称(随便取) is     在这里可以定义常量.变量.游标.复杂数据 ...

  6. oracle中调用过程,oracle中如何调用存储过程

    oracle中如何调用存储过程 发布时间:2020-03-08 03:28:03 来源:51CTO 阅读:511 作者:lxg290 一.通过pls块来调用存储过程: declare p_dzno v ...

  7. Oracle EBS 动态调用 XML Publisher 模板 输出不同的报表

    Oracle EBS 动态调用 XML Publisher 模板 输出不同的报表 if fnd_request.add_layout(template_appl_name => 'CUX',   ...

  8. Linux/Centos 安装oracle报错“调用makefile '/oracle/produc

    解决centos7/redhat7安装oracle11g到%70报错问题 Linux/Centos 安装oracle报错"调用makefile '/oracle/product/11.2.0 ...

  9. 16字节 oracle md5,Oracle中的MD5加密

    因为要用到MD5加密,所以在网上搜了一下相关资料,并进行仔细研究.其核心就是MD5编码的数据包函数:DBMS_OBFUSCATION_TOOLKIT.M 因为要用到MD5加密,所以在网上搜了一下相关资 ...

最新文章

  1. mysql 主从 MySQLroute_mysql主从复制
  2. Android判断软键盘弹出并隐藏的简单完美解决方案
  3. 修改Header方法
  4. vs2005新建类,自定义模板信息(转载)
  5. 总结各类损失函数【修】
  6. 针对中位数求解的几道题
  7. 递归处理vue菜单数据
  8. jq和thinkphp经常使用的几种ajax
  9. Visual C# 2008+SQL Server 2005 数据库与网络开发-- 1.1 Visual Studio 2008概述
  10. C++基础语法-02-运算符重载
  11. 2021年中国上牌和驾驶员数量分析:新注册登记机动车3674万辆 新领证驾驶人2750万人[图]
  12. 天池项目总结,特征工程了解一下!
  13. 公司内网限制qq微信登陆--解决办法
  14. node 暴漏模块中的api(转自了不起的node)
  15. python金融分析-基于Python的金融分析与风险管理
  16. MySQL 乱七八糟的可重复读隔离级别实现
  17. 计算机专业的创新创业之路,大学生创新创业项目对计算机专业建设的有益探索.doc...
  18. 软件需求工程课程总结
  19. CSP-SM常见问题及解答
  20. 如何一键生成手机淘宝详情页?

热门文章

  1. css过渡和动画的区别
  2. 法属圭亚那地区将建造可再生能源储存能力达140兆瓦时的全球最大发电厂
  3. 互联网日报 | 滴滴货运成都、杭州上线;瑞幸咖啡再收纳斯达克退市通知;我国完成北斗全球系统星座部署...
  4. Android studio导入图片出现下划红线怎么破
  5. 质量工具之矩阵解析法
  6. 小米3刷android 5.0吗,小米3怎么刷入原生安卓5.0?
  7. 2021软件测试全网最新完整教程资源
  8. Linux黑客基础02篇(部署镜像及有关命令的操作)
  9. w1区块链基础知识25讲
  10. excel wind插件使用_教你用AE插件Particular制作冬天下雪场景!