ORA-06553: PLS-307: too many declarations of ‘MD5’ match this call


最近因为项目需要做两个库之间的数据交换,但是因为一些客观原因导致不能使用数据库的高级复制功能,遂想到通过两个中间库 作为数据交换的节点进行数据交换,但是这样子一来,就需要自己处理数据的更新、插入、删除判断了。

插入的数据比较好判断,通过一个表记录数据的主键即可,但是更新的数据怎么判断出来呢?通过调查发现,可以采用记录数据主键以及创建记录数据体的MD5校验码来检查数据是否被更新了。

Oracle本身提供了一个md5函数可以生成文本的md5值,连接数据执行

select dbms_obfuscation_toolkit.md5(‘test’) from dual;

居然显示ORA-06553: PLS-307: too many declarations of ‘MD5’ match this call错误,上网一查,发现需要指明接收的参数名称。通过下面的方法可以解决该问题。

select dbms_obfuscation_toolkit.md5(input_string => ‘test’) from dual;

增加了input_string类型的参数,至此问题解决。

最近决定往分布式系统架构方向走,得努力了。在卓越买了两本书,一本Java 消息服务,还有一本Spring技术内幕:深入解析Spring架构与设计原理。关于分布式,还是先从消息服务入手,然后再搞定Hadoop的配置和基本开发。Spring方面的话虽然自己一直在用,也经常看一些源代码,并且模仿Spring的设计方法在自己的系统里面做一些实现。但是没有全面的了解,感觉还是不扎实,所以看一下Spring技术内幕全盘掌握Spring的一些技术。

——谨此勉励自己

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s