WEB开发网
开发学院数据库Oracle ORACLE实现CRC32的计算函数,SOLARIS平台 阅读

ORACLE实现CRC32的计算函数,SOLARIS平台

 2009-06-08 13:15:52 来源:WEB开发网   
核心提示:声明:这是我07年的一个偶然所得,借助了很多朋友和同事的帮助,ORACLE实现CRC32的计算函数,SOLARIS平台,希望能对在这个领域里面找寻的同行一些帮助, 首先用C在SOLARIS上编写一个CRC32.C文件 使用了SOLARIS上的GCC编译器,命令如下:CREATE OR REPLACE function

声明:这是我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.

Tags:ORACLE 实现 CRC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接