通过数组将Oracle行结果传递给C函数进行计算
我想在一个共享的C编译程序中执行行结果的计算 我想做一些类似的事情:通过数组将Oracle行结果传递给C函数进行计算,c,oracle,oracle11g,C,Oracle,Oracle11g,我想在一个共享的C编译程序中执行行结果的计算 我想做一些类似的事情: select myfunction( select col1 from table1 ) from dual; 其实我只能做到: select myfunction(4,5,6) from dual; 我有一张这样的桌子: create table table1 (col1 float); insert into table1 values (4); insert into table1 values (5);
select myfunction( select col1 from table1 ) from dual;
其实我只能做到:
select myfunction(4,5,6) from dual;
我有一张这样的桌子:
create table table1 (col1 float);
insert into table1 values (4);
insert into table1 values (5);
insert into table1 values (6);
我的C程序(使用:gcc-shared-o$ORACLE\u HOME/lib/exec\u docalc.so exec\u docalc.C编译)
#include <stdio.h>
int exec_docalc ( int p1 , int p2, int p3 )
{
int result;
result = p1 + p2 + p3;
return result;
}
CREATE OR REPLACE LIBRARY docalcLIB UNTRUSTED
AS '/u01/app/oracle/product/11.2.0/dbhome_2/lib/exec_docalc.so';
CREATE OR REPLACE FUNCTION myfunction
(P1 BINARY_INTEGER, P2 BINARY_INTEGER, P3 BINARY_INTEGER)
RETURN BINARY_INTEGER
AS LANGUAGE C
LIBRARY docalcLIB
NAME "exec_docalc";