Postgresql
Oracle 11g:C/C++ 中的函式或過程
我想創建一個由 oracle 上的觸發器呼叫的函式,但在 c 或 c++ 中。類似於 PostgreSQL 中的內容:C 中的審計觸發器。
或者,在任何情況下,是否支持這一點,但在 Python 等其他語言中?
謝謝!
Oracle 數據庫支持 Java 和外部 C 呼叫。它們可以用作包裝器來呼叫用其他語言(如 Python)編寫的程序。
Oracle 數據庫只能使用通過呼叫規範發布的外部過程,該規範將 Java 類方法或 C 外部過程的名稱、參數類型和返回類型映射到其對應的 SQL。
創建一個範常式序:
$ cat /home/oracle/1.c char* myfunc() { return "Hello World!"; } $ gcc -shared -o /home/oracle/1.so -fPIC /home/oracle/1.c
在數據庫中,創建一個庫和一個使用它的函式:
create or replace library lib_myfunc is '/home/oracle/1.so'; / create or replace function myfunc return varchar2 as external name "myfunc" library lib_myfunc language c; /
啟用此庫的使用
$ORACLE_HOME/hs/admin/extproc.ora
:SET EXTPROC_DLLS=/home/oracle/1.so
然後最終將其用作:
SQL> select myfunc from dual; MYFUNC ------------ Hello World!
更多關於這個: