我从未使用过Oracle,我通常只使用标准SQL功能。
我有一个用GCC 4.2.4编译的C ++共享库,我需要从Oracle存储过程调用它的功能。
我可以在构建时直接使用共享库,还是必须使用一些特殊标记来构建它?
我是否必须在oracle中创建一个实际调用C ++代码的函数或特殊内容?
如何映射类型?我必须做一些编组吗?
答案 0 :(得分:1)
您似乎需要使用Oracle External Procedures。
答案 1 :(得分:1)
长话短说。 Oracle不允许您访问它的地址空间。 C存储过程的工作方式与MySQL和PostgreSQL不同。你必须:
CREATE LIBRARY
extproc
(或extproc32
)的特殊进程。此过程将加载您的共享库,并将通过IPC与其他Oracle通信。最佳启动地点是Oracle服务器安装,包含C OCI示例。在那里你会找到一个这样的共享库的骨架,还有一个Makefile
来编译它。