返回首页

gbase数据、南大通用产品文档:GBase8s指定不透明类型的属性

更新日期:2024年09月11日

下列主题提供在 Java™ 类不存在时有关创建不透明类型的附加信息。有关从现有 Java 类
创建不透明类型的详细信息,请参阅 从现有代码创建不透明类型。
使用 UDTMetaData 类中的方法,可以为新的不透明类型指定属性。这些设置适用于新的不
透明类型;从现有文件创建不透明类型,请参阅从现有代码创建不透明类型.。
可以设置以下属性:

内部结构中定义不透明类型的字段数

其它属性,例如内部结构中定义不透明类型的每个字段的数据类型、名称和精度

不透明类型的长度

不透明类型的对齐方式

不透明类型和 JAR 文件的 SQL 名称

已生成的 Java 类的名称

是否保留生成的 .java 文件
指定字段计数
setFieldCount() 方法指定内部结构中定义不透明类型的字段计数:
public void setFieldCount(int fieldCount) throws SQLException
指定其它字段属性
以下方法设置内部数据结构中的字段的其它属性:
public void setFieldName (int field, String name) throws SQLException
public void setFieldType (int field, int ifxtype) throws SQLException
public void setFieldTypeName(int field, String sqltypename) throws
SQLException
public void setFieldLength(int field, int length) throws SQLException
field 参数指示驱动程序应设置或获取属性的字段。第一个字段为 1;第二个字段为 2,依次
类推。
使用 setFieldName() 指定的名称出现在 Java™ 类文件中。以下示例将第一个字段名称设置
为 IMAGE。
mdata.setFieldName(1, "IMAGE");

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 179
-
setFieldType() 方法指示使用 com.gbasedbt.lang.IfxTypes 文件中的常量设置字段的数据
类型。
有关更多信息,
请参阅映射字段类型。
以下示例指定第三个字段中的值为 CHAR 数
据类型:
mdata.setFieldType(3, com.gbasedbt.lang.IfxTypes.IFX_TYPE_CHAR);
setFieldTypeName() 方法设置使用 SQL 数据类型名称的字段的数据类型:
mdata.setFieldTypeName(1, "IMAGE_UDT");
此方法仅对 opaque 和 distinct 类型有效;对于其它类型,驱动程序会忽略此信息。
length 参数具有以下含义,它取决于字段的数据类型:
字符类型
字符中的最大长度
DATETIME
编码的长度
INTERVAL
编码的长度
其它数据类型或不指定类型
驱动程序忽略此信息
编码长度的可能值为 JDBC 2.20 规范中的值:小时到秒;一年到两年;年份(1),年份
(2)到年份(5)。
以下示例指定不透明类型中的第三个字段(VARCHAR)不能存储多于 24 个字符:
mdata.setFieldLength(3, 24);
指定长度
setLength() 方法指定不透明类型的总长度:
public void setLength(int length) throws SQLException
如果您正在从现有的 Java™ 类创建不透明类型并不指定长度,则驱动程序创建可变长度的
不透明类型。
如果您从不具有现有的 Java 类创建不透明类型,
则必须指定长度;
在此情况
下,UDT Manager 只创建固定长度的不透明类型。
指定对齐方式
setAlignment() 方法指定不透明类型的对齐方式:
public void setAlignment(int alignment)
alignment 参数是下一节中显示的对齐值之一。如果未指定对齐方式,则数据库服务器设置
不透明类型 4 字节对齐。
对齐值

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 180
-
对齐值如下表所示。

常量
结构始于
边界对齐
1
SINGLE_BYTE
1 个字节的数量
单个字节
2
TWO_BYTE
2 个字节的数量(例如 SMALLINT)
2 个字节
4
FOUR_BYTE
4 个字节的数量(例如 FLOAT 或 UNSIGNED
INT)
4 个字节
8
EIGHT_BYTE
8 个字节的数量
8 个字节
指定 SQL 名称
使用 setSQLName() 和 setJarFileSQLName()方法指定 SQL 名称:
public void setSQLName(String name) throws SQLException
public void setJarFileSQLName(String name) throws SQLException
缺省情况下,驱动程序使用通过 setSQLName() 方法设置的名称作为当调
用 UDTManager.createUDTCclass() 和 UDTManager.createJar() 方法时生成的 JAR 文件和
Java™ 类的文件名称。例如,如果调用 setSQLName("circle") 然后调
用 createUDTCclass() 和 createJar(),则生成的类文件名将会是 circle.class ,JAR 文件名将
会是 circle.jar。可以通过调用 setClassName() 方法指定 Java 类文件名而不是缺省值。
JAR 文件 SQL 名称是驱动程序用于注册 UDR 的 SQL CREATE FUNCTION 语句中引
用的名称。
重要:
JAR 文件 SQL 名是 SQL 语句中 JAR 文件的名称;
它与 JAR 文件的内容没有关系。
指定 Java 类名称
使用 setClassName() 指定 Java™ 类名称:
public void setClassName(String name)throws SQLException
如果未使用 setClassName() 设置类名称,则驱动程序使用不透明类型的 SQL 名称(通
过 setSQLName() 设置)
和 createUDTCclass() 方法生成的.class 文件的名称作为 Java™ 类的
名称。
指定 Java 源文件保留
使用 keepJavaFile() 指定是否保留 .java 源文件:
public void keepJavaFile(boolean value)
value 值指示 createUDTClass() 方法是否应该保留它在为新的不透明类型创建 Java™ 类文
件时生成的 .java 文件。缺省为移除此文件。以下示例保留 .java 文件:
mdata.keepJavaFile(true);


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

删除 dbspace
(SQL 管
理 API)
随同 admin() 或 task() 函数,使用 drop dbspace 参数来删除指定的 dbspace。
语法

元素
描述
关键考虑
dbspace
要删除的 dbspace
名。
该 dbspace 必须存在。
在您删除 dbspace之前,
请删除所有您以前在该 dbspace
中创建的数据库和表。

用法
这个函数等同于 onspaces -d 命令。
示例
下列示例删除名为 dbspace4 的 dbspace:
EXECUTE FUNCTION task("drop dbspace","dbspace4");

|
10 | 240000 |