使用 CLASS 修饰符指定运行外部例程的虚拟处理器(VP)类的名称。用户定义的 VP 类必须在调用 UDR 之前定义。
可以使用下列几种 VP 类执行 C UDR:
- CPU 虚拟处理器类(CPU VP)
- 用户定义的虚拟处理器类。
如果省略 CLASS 修饰符来为用 C 语言编写的 UDR 指定 VP 类,那么 UDR 就在 CPU VP 中运行。用户定义的 VP 类可以保护数据库服务器不受恶意工作的
C UDR
影响。行为不良的 C UDR 至少具有下列特征中的一个:
- 长时间运行在 CPU VP 中不肯退出。
- 不是安全线程。
- 调用不安全的操作系统例程。
正常工作的 C UDR 不具有这些特征中的任何一项。在 CPU VP 中只执行正常工作的 C UDR。
警告: 在
CPU VP 中执行表现不佳的 C UDR 会导致对数据库服务器运行的严重干扰,并且 UDR 可能不会产生正确的结果。有关表现不佳的 UDR 的讨论,请参阅 GBase 8s DataBlade API 程序员指南。
缺省情况下,用 Java™ 编写的 UDR 在 Java 虚拟处理器类(JVP)中运行。因此,CLASS 修饰符对 Java 编写的
UDR 是可选的。然而,在注册一个用 Java 编写的 UDR 时使用 CLASS 修饰符,可以提高 SQL 语句的可读性。