1、编写C程序
vi calc_tax.c
calc_tax(n)
int n;
{
int tax;
tax=(n*15)/100;
return(tax);
}
2、将calc_tax.c文件编译成功动态链接库。
cc -shared -o calc_tax.so calc_tax.c
3、将生成的库文件拷贝到$ORACLE_HOME/bin
cp calc_tax.so $ORACLE_HOME/bin
conn /as sysdba
4、创建一个别名库,用来说明将要调用的C函数所在的库文件
create or replace library c_code as '$ORACLE_HOME/bin/calc_tax.so';
5、将别名库的权限赋给designer;
grant execute on c_code to designer;
6、用designer用户登陆创建一个调用声明以来使用calc_tax函数
conn designer/designer
create or replace function call_c(
x binary_integer
)
return binary_integer
as language C
library sys.c_code
name "calc_tax";
7、命令窗口测试
set serveroutput on
var v_salary number;
var v_tax number;
exec :v_salary:=100;
exec :v_tax:=call_c(v_salary);
print v_tar;