返回首页

gbase数据、南大通用产品文档:GBase8s

更新日期:2024年09月11日

UDT field name or field type was not set in UDTMetaData
应用程序调用了 UDTManager.createUDTClass(),但是没有先为数据结构中定义不透明类型
的每个字段指定字段名称和数据类型。

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 312 -

通过调用 UDTMetaData.setFieldName() 指定字段名称;
调用 UDTMetaData.setFieldType() 指
定字段类型。

一旦您使用 UDTMetaData 方法指定了不透明类型的属性,
您可以按照以下顺序使用类中的
方法创建不透明类型及其类和 JAR 文件:
1.
实例化 UDTManager 对象。
如以下所示建立连接:
public UDTManager(Connection conn) throws SQLException
2.
使用 createUDTClass() 方法创建 .class 和 .java 文件。
3.
使用 createJar() 方法创建 .jar 文件。
4.
使用 createUDT() 方法创建不透明类型。
创建 .class 和 .java 文件
createUDTClass() 方法具有以下签名:
public String createUDTClass(UDTMetaData mdata) throws SQLException
createUDTClass() 方法导致驱动程序为应用程序执行所有以下操作:
1.
使用 UDTMetaData.setClassName() 方法中指定的名称创建一个 Java™ 类
如果未指定类名称,则驱动程序使用 UDTMetaData.setSQLName() 方法中指定的名
称。
2.
将 Java 类代码放到 .java 文件中,然后编译此文件为 .class 文件。
3.
将新创建的名称返回到应用程序。
如果通过调用 UDTMetaData.keepJavaFile() 方法指定 TRUE,则驱动程序保留生成
的 .java 文件。缺省操作为删除此 .java 文件。
应用程序调用 createUDTClass() 方法仅创建定义不透明类型的新 .class 和 .java 文件,而不
从现有文件生成不透明类型。
创建 .jar 文件
createJar() 方法编译您在 classnames 列表中指定的类。
列表中的文件必须具有 .class 扩展名。

public String createJar(UDTMetaData mdata, String[] classnames)
throws SQLException;
驱动程序创建名为 sqlname.jar 的 JAR 文件(其中 sqlname 是您通过调
用 UDTMetaData.setSQLName() 指定的名称 )并将文件名返回到应用程序。

参数说明:指定一个或多个共享库,
它们在开始连接前预先加载。多个加载库之间用逗
号分隔,除了双引号,所有的库名都转换为小写。

并非只有系统管理员才能更改此选项,因此只能加载安装的标准库目录下plugins
子目录中的库文件,数据库管理员有责任确保该目录中的库都是安全的。
local_preload_libraries 中指定的项可以明确含有该目录,例如$libdir/plugins/mylib;
也可以仅指定库的名称,例如mylib(等价于$libdir/plugins/mylib)。

与shared_preload_libraries 不同,在会话开始之前加载模块与在会话中使用到该模
块的时候临时加载相比并不具有性能优势。
相反,
这个特性的目的是为了调试或者
测量在特定会话中不明确使用LOAD 加载的库。例如针对某个用户将该参数设为
ALTER USER SET 来进行调试。

当指定的库未找到时,连接会失败。

每一个支持GBase 8c 的库都有一个“magic block”用于确保兼容性,因此不支持
GBase 8c 的库不能通过这个方法加载。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1333
该参数属于BACKEND 类型参数,请参考表GUC 参数设置方式中对应设置方法进行
设置。
取值范围:字符串
默认值:空