一个 ORACLE 调用 DLL 的例子(原创)

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 yzsind 的 blog

注:以下程序在delphi7+oracle9i中测试通过

1、首先用delphi编制一个dll程序,当然用vb,vc其它语言也可以,
本人最近常用delphi,所以以下dll采用delphi程序编制:

//////////////////////////////////////////project1.dpr  工程文件
library project1;
uses
  sysutils,
  classes,
  unit1 in 'unit1.pas';

{$r *.res}
exports
  dlltest;
begin
end.


///////////////////////////////////////////unit1.pas  接口函数实现文件
unit unit1;

interface

function dlltest(a,b:double): double; cdecl; //接口函数

implementation
function dlltest(a,b:double): double; cdecl; //接口函数
begin
  result:=a*b;
end;

end.

2、将编译生成的project1.dll 拷贝至$oracle_home/bin路径下,本人$oracle_home=c:\oracle\ora92
所以将project1.dll拷贝至c:\oracle\ora92\bin\路径。


3、oracle 数据库中增加一个library 名字为 "mylib"

create or replace library mylib
  as 'c:\oracle\ora92\bin\project1.dll';

4、oracle 数据库中增加一个function 名字为 "mytest1"
create or replace function mytest1(a double precision,b double precision) return double precision as
  language c name "dlltest"
  library mylib
  parameters (a double,b double,
               return double );


5、测试一下

select mytest1(3.51,8.2) from dual;

------------返回28.782

6、到此一个简单的例子完成,其实这是一个最简单的例子,实际应用中需要根据需求去做,
本人做这个例子只是给各位网友开路,实际应用还需参考oracle帮助文档。

源程序及脚本下载地址:

http://www.cnoug.org/attachment.php?aid=20557


    叶正盛
2005-03-11

本文关键:一个 ORACLE 调用 DLL 的例子(原创)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top