问题描述
我正在为表中的级联列寻找MD5值的函数。我计划在insert/update trigger之前使用此函数将此值存储为同一表中的列 (md5_hash) 之一。目的是将此列用于更改数据捕获,以将更改加载到数据仓库系统。以下是触发因素。
创建或替换触发器biu_trigger
在插入或更新表之前为每行
开始
: 新的。etl_load_date:= sysdate;
: new.Md5 _ 哈希: = 生成 _ md5(:NEW.concernid ||: NEW.COLUMN1 ||: NEW.COLUMN2 | | TO_CHAR(:NEW.creationdate,'yyyymmddhh24miss ';
结束biu_trigger
;
/
基于google搜索,找到以下代码获取MD5哈希。
创建或替换函数HASH_MD5 (
变量2中的psINPUT
) 将VARCHAR2返回为
rHash RAW (16);
开始
rHash := DBMS_CRYPTO.HASH (TO_CLOB (psINPUT),DBMS_CRYPTO.HASH_MD5);
返回 (较低 (RAWTOHEX (rHash);
结束哈希 _ md5;
这似乎可以很好地输入值多达4000个字符。但似乎不工作,如果连接列有更多的数据4,000,000字符。
因此,如果您可以建议如何为超过4000个字符长的字符串获取MD5,我将不胜感激。
我正在使用11.2。
谢谢。
创建或替换触发器biu_trigger
在插入或更新表之前为每行
开始
: 新的。etl_load_date:= sysdate;
: new.Md5 _ 哈希: = 生成 _ md5(:NEW.concernid ||: NEW.COLUMN1 ||: NEW.COLUMN2 | | TO_CHAR(:NEW.creationdate,'yyyymmddhh24miss ';
结束biu_trigger
;
/
基于google搜索,找到以下代码获取MD5哈希。
创建或替换函数HASH_MD5 (
变量2中的psINPUT
) 将VARCHAR2返回为
rHash RAW (16);
开始
rHash := DBMS_CRYPTO.HASH (TO_CLOB (psINPUT),DBMS_CRYPTO.HASH_MD5);
返回 (较低 (RAWTOHEX (rHash);
结束哈希 _ md5;
这似乎可以很好地输入值多达4000个字符。但似乎不工作,如果连接列有更多的数据4,000,000字符。
因此,如果您可以建议如何为超过4000个字符长的字符串获取MD5,我将不胜感激。
我正在使用11.2。
谢谢。
专家解答
我需要看一个完整的例子-因为它对我来说很好
SQL> create table t ( 2 c1 varchar2(4000), 3 c2 varchar2(4000), 4 hash varchar2(4000) 5 ); Table created. SQL> SQL> CREATE or REPLACE FUNCTION HASH_MD5 ( 2 psINPUT IN VARCHAR2 3 ) RETURN VARCHAR2 AS 4 rHash RAW (16); 5 BEGIN 6 rHash := DBMS_CRYPTO.HASH (TO_CLOB (psINPUT), DBMS_CRYPTO.HASH_MD5); 7 RETURN (LOWER (RAWTOHEX (rHash))); 8 END HASH_MD5; 9 / Function created. SQL> SQL> create or replace 2 trigger trg 3 before insert on t 4 for each row 5 begin 6 :new.hash := HASH_MD5(:new.c1||:new.c2); 7 end; 8 / Trigger created. SQL> SQL> insert into t (c1,c2) values ( 2 rpad('x',4000,'x'), 3 rpad('x',4000,'x') 4 ); 1 row created. SQL> SQL> select hash from t; HASH -------------------------------------------------------------------------- d49d36f757d863f1f12fedf91a893e19复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
665次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
627次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
536次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
481次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
480次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
462次阅读
2025-04-30 12:17:56
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
451次阅读
2025-04-22 00:13:51
火焰图--分析复杂SQL执行计划的利器
听见风的声音
408次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
371次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
348次阅读
2025-05-05 19:28:36