当编写外部例程时使用外部例程引用。该项对 SPL 例程无效。
如果 IFX_EXTEND_ROLE 配置参数设置为 ON 或 1,则只能授予数据库服务器管理员(DBSA)及 DBSA 已经授予 EXTEND 角色的用户使用这个段的权限。缺省情况下,DBSA 是用户 gbasedbt。此外,您不能创建外部例程除非您持有数据库的 Resource 或 DBA 特权,并且还拥有编写此例程的外部程序语言的 Usage 特权。有关 GRANT USAGE ON LANGUAGE C 和 GRANT USAGE ON LANGUAGE JAVA 语句的语法,请参阅 语言级权限。
对于 C 例程,这个文件可以是 DLL 或共享库,这取决于您的操作系统。
对于 Java 例程,这个文件是 jar 文件。在能够创建用 Java 语句编写的 UDR 之前,必须用 sqlj.install_jar 过程分配一个 jar 标识符给外部 jar 文件。有关更多信息,请参阅 sqlj.install_jar。缺省情况下,参数样式是 GBASEDBT。(这意味着如果指定 OUT 或 INOUT 参数,则 OUT 或 INOUT 值通过引用来传递。)
CREATE FUNCTION delete_order(int) RETURNING int EXTERNAL NAME 'gbasedbt.demo_jar:delete_order.delete_order()' LANGUAGE JAVA;