- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0 |
声明:这是我07年的一个偶然所得,借助了很多朋友和同事的帮助。希望能对在这个领域里面找寻的同行一些帮助。
首先用C在SOLARIS上编写一个CRC32.C文件
使用了SOLARIS上的GCC编译器,编译了CRC32.C文件,该文件最好放在oracle10g主目录下
使用gcc编译器,编译成64位的crc32.so文件。
编译命令是
gcc -m64 -fpic -o crc32.o -c crc32.c
gcc -shared -m64 -o crc32.so crc32.o -L/usr/sfw/lib/64
在数据库中创建lib,命令是:
SQL> create or replace library CRC32 as '/opt/oracle10g/crc32.so'
2 /
再创建function,命令如下:
以下为引用的内容:
CREATE OR REPLACE function crc_32(a in varchar2)
return binary_integer
as
language C
library CRC32
name "call_crc"
parameters(a string,return int);
/
测试结果:
以下为引用的内容:
SQL> select crc_32('hello') from dual;
CRC_32('HELLO')
---------------
907060870
同使用PERL语言写的CRC32算法程序计算
crc.pl hello
907060870
结果一致
同理对其他字符串进行了测试,结果一样。
测试成功,证明在ORACLE中可以使用CRC32计算出INTID
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |