通过数组将Oracle行结果传递给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);

我想在一个共享的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);
  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";