#自定义库

自定义库是数据库中的一种PL对象,用于数据库调用第三方库文件。

分布式部署中不能创建自定义库。

# 创建自定义库

使用CREATE LIBRARY语句创建自定义库,其语法定义为:

create library::=

syntax
CREATE OR REPLACE EDITIONABLE NONEDITIONABLE LIBRARY plsql_library_source ;

plsql_library_source::=

syntax
schema . library_name IS AS ' full_path_name '

# or replace

当要创建的自定义库已经存在时,将其进行重建。

# editionable | noneditionable

用于语法兼容,无实际含义。

# library_name

自定义库的名称,不可省略,且需要符合YashanDB的对象命名规范

# 'full_path_name'

库文件的完整路径,需要为字符串,支持绝对路径和相对路径。长度需在0-255字节范围,如'/home/yasdb/example/UDFexample.class'。

示例(单机、共享集群部署)

CREATE OR REPLACE LIBRARY ya_lib IS
'/home/yasdb/example/UDFexample.class';
/

# 使用自定义库

外置UDF中可使用call_spec子句调用自定义库,详细使用方法见外置UDF

示例(单机、共享集群部署)

CREATE OR REPLACE FUNCTION udf_func(argu INT) RETURN VARCHAR IS
LANGUAGE java
NAME 'example.UDFexample.execJdbcexample(int) return string'
LIBRARY ya_lib;
/

# 删除自定义库

使用DROP_LIBRARY语句删除自定义库。