GBase8s数据库外部过程

外部过程是用数据库服务器支持的外部语言写的过程。(使用 SPL 语言编写的过程不是外部过程。)

要创建 C 的用户定义的过程:

  1. 编写不返回值的 C 函数。

  2. 编译 C 函数并将编译过的代码存储在共享库中(C 的共享对象文件)。

  3. 在数据库服务器中使用 CREATE PROCEDURE 语句注册 C 函数。

要创建以 Java™ 语言编写的用户定义的过程:

  1. 写一个 Java 静态方法,它能使用 JDBC 函数与数据库服务器交互。

  2. 编译 Java 源并创建一个 JAR 文件(共享对象文件)。

  3. 用 EXECUTE PROCEDURE 语句执行 install_jar( ) 过程,在当前数据库中安装 JAR 文

件。

  1. 如果 UDR 使用用户定义类型,则使用在 EXECUTE PROCEDURE 语句 中说明的

setUDTextName( ) 过程在 SQL 数据类型和 Java 类别之间创建映射。

  1. 使用 CREATE PROCEDURE 语句注册 UDR 。(如果外部例程返回一个值,则您必须使

用 CREATE FUNCTION 语句而非 CREATE PROCEDURE 来注册它。)

并非将外部例程的主体直接存储在数据库中,数据库服务器仅存储包含已编译版本例程的共享对象

文件的路径名。数据库服务器通过调用外部目标代码执行外部例程。

您还必须持有要注册的外部过程所在数据库的 Resource 特权或 DBA 特权,和对编写的例程所有

的程序语言的 Usage 特权。(有关在 C 语言或 Java 语言上将 Usage 特权授予用户或角色或

PUBLIC 组的语法的信息,请参阅 语言级权限。)

当 IFX_EXTEND_ROLE 配置参数设置成 1 或 ON 时,只有拥有内置 EXTEND 角色的用户才可

以创建外部过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值