写出UDB/UDBX表结构

使用说明

根据输入的数据表结构信息,向UDB/UDBX文件型数据源中创建或更新对应的数据表及其属性结构。

输入数据

参数名 参数释义 参数类型
输入 含有表结构信息的数据源,通常由其他转换器的输出提供。 IFeatureCollection

参数说明

参数名 参数释义 参数类型
写出路径

指定本地目录中的UDB/UDBX文件型数据源。

String
写出方式 指定数据表操作方式:
  • 创建:数据源中无同名表时,创建新表作为目标表。存在同名表时,执行失败。
  • 更新:数据源中有同名表时,更新同名表,反之忽略更新。可更新的内容有数据表别名和字段别名。
WriterType
数据表名 指定数据表名所在的列,将自动读取该列的值作为创建或更新的数据表名称。数据表名称需遵循以下命名规范:
  • 字符范围:
    • 允许的字符范围:汉字 (中文字符)、大写英文字母 (A-Z)、小写英文字母 (a-z)、数字 (0-9)、下划线 (_)。
    • 禁止使用的字符:除上述允许的字符范围外的所有字符均为非法字符,例如:空格、括号、连字符、点号、引号、百分号等。若名称中含有非法字符,将自动转换为下划线(_)进行存储。
  • 首字符规则:名称的第一个字符必须是汉字或字母(大小写均可),禁止以数字或下划线作为开头。
  • 长度限制:
    • 名称必须包含至少1个有效字符,长度不能为0。
    • 名称的最大长度为59个字符,1个汉字、1个字母、1个数字或1个下划线均计为1个字符,若名称超过59字符,系统将自动截断超出部分。
  • 唯一性:数据表名具有唯一性,需确保该列的值唯一。
  • 保留关键字冲突:名称不得与任何数据库系统的保留关键字冲突。
String
数据表别名

可选参数,指定数据表别名所在的列,将自动读取该列的值作为创建或更新的数据表别名。

  • 若不指定此列或此列的值为空,且选择的写出方式为创建,则结果数据表的别名与数据表名一致。
  • 若不指定此列或此列的值为空,且选择的写出方式为更新,则结果数据表的别名将不被更新。
String
数据表类型

指定数据表类型(几何类型)所在的列,支持的值有table、point、piontz、line、linez、linem、polygon、polygonz、text、model、cad。

若此列的值为空,或含有其他值,则执行失败。

String
字段名称

指定字段名称所在的列,将自动读取该列的值作为创建或更新的字段名称。字段名称需遵循以下命名规范:

  • 字符范围:
    • 允许的字符范围:汉字 (中文字符)、大写英文字母 (A-Z)、小写英文字母 (a-z)、数字 (0-9)、下划线 (_)。
    • 禁止使用的字符:除上述允许的字符范围外的所有字符均为非法字符,例如:空格、括号、连字符、点号、引号、百分号等。若名称中含有非法字符,将自动转换为下划线(_)进行存储。
  • 首字符规则:名称的第一个字符必须是汉字或字母(大小写均可),禁止以数字、下划线或“sm”两个连续字母作为开头。
  • 长度限制:
    • 名称必须包含至少1个有效字符,长度不能为0。
    • 名称的最大长度为28个字符,1个汉字、1个字母、1个数字或1个下划线均计为1个字符,若名称超过28字符,系统将自动截断超出部分。
  • 唯一性:同一个数据表中的字段具有唯一性。
  • 保留关键字冲突:名称不得与任何数据库系统的保留关键字冲突。
String
字段别名

可选参数,指定字段别名所在的列,将自动读取该列的值作为创建或更新的字段别名。

  • 若不指定此列或此列的值为空,且选择的写出方式为创建,则结果字段的别名与字段名称一致。
  • 若不指定此列或此列的值为空,且选择的写出方式为更新,则结果字段的别名将不被更新。
String
字段类型

指定字段类型所在的列。支持的类型有如下,不区分大小写。

  • 16位整型:整数型字段,值域范围是[-32768,32767]。该列中的值为“INT16”或“16位整型”时,均可被识别为16位整型。
  • 32位整型:整数型字段,值域范围是[-2147483648,2147483647]。该列中的值为“INT32”或“32位整型”时,均可被识别为32位整型。
  • 64位整型:整数型字段,值域范围是[-9223372036854775808, 9223372036854775807]。该列中的值为“INT64”或“64位整型”时,均可被识别为64位整型。
  • 双精度:双精度浮点型数值,允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308,0和2.2250738585072014E-308到1.7976931348623157E+308。该列中的值为“DOUBLE”或“双精度”时,均可被识别为双精度。
  • 单精度:单精度浮点型数值,允许的值是-3.402823466E+38到-1.175494351E-38,0 和 1.175494351E-38到3.402823466E+38。该列中的值为“SINGLE”或“单精度”时,均可被识别为单精度。
  • 文本型:可变长度的文本型字段,最大长度为255(2^8-1)个字符。该列中的值为“TEXT”、“文本”或“文本型”时,均可被识别为文本型。
  • 字符型:最大长度为65535(2^16-1)个字符。该列中的值为“CHAR”或“字符型”时,均可被识别为字符型。
  • 布尔:字段值为True或False。该列中的值为“BOOLEAN”或“布尔”时,均可被识别为布尔。
  • 日期:日期时间型字段,显示格式为YY/MM/DD hh:mm:ss,例如:2020/11/19 14:54:10。该列中的值为“DATETIME”、“DATE”或“日期”时,均可被识别为日期。
  • 字节:byte数据类型,值域为[0,255]。该列中的值为“BYTE”或“字节”时,均可被识别为字节。
  • 二进制型:二进制类型,有字符集的概念。该列中的值为“LONGBINARY”或“二进制型”时,均可被识别为二进制型。
String
字段长度

可选参数,用于指定文本型或字符型字段的长度所在列。如未指定或该列值为空,则采用默认字段长度,文本型和字符型字段的默认长度将分别设为255和1。

对于16位整型、32位整型、64位整型、双精度、单精度、布尔、日期、字节及二进制类型字段,此设置不适用,其长度始终采用程序预设值。

String
字段默认值 可选参数,指定字段默认值的列。例如,Education_P数据表中Province字段的默认值为“四川省”,成功创建表结构后,向该表创建对象时,Province字段的值都会自动填充为“四川省”。 String
字段必填

可选参数,指定字段是否为必填的列。

  • 该列中的值为“是”、“Y”或“YES”或“TRUE”时,均可被识别为必填。
  • 若不指定或该列的值为上述以外的其他值,则默认为非必填。
String
字段顺序 可选参数,指定字段在数据表中的排列顺序。若不指定或该列的值为空,则根据该列的顺序创建字段。 String

输出结果

参数名 参数释义 参数类型
统计数据 统计成功写出的数据信息。 IFeatureCollection
无效数据 当前转换器无法处理的记录。 IFeatureCollection

应用示例

数据说明

Excel中的数据表信息如下所示,包含Province_R和Education_P两个数据表。

数据表名称 数据表类型  数据表别名   字段名称 字段类型 字段长度  字段别名 字段默认值 字段必填 字段排序
Province_R polygon 省级行政区 Name 文本型 20 省名   Y 1
Name_Pinyin 文本型 50 省名拼音   N 2
PAC 64位整型 8 邮政地址编码   N 3
GDP 64位整型 8 地区生产总值   N 4
Population 64位整型 8 人口数量   N 5
Education_P point 教育机构 Name 文本型 20 机构名称   Y 1
Province 文本型 20 所属省份 四川省 Y 4
City 文本型 20 所属城市   Y 3
Country 文本型 20 所属区县   Y 2

操作说明

  1. 新建的模型窗口中添加读入Excel转换器,指定数据来源并勾选首行为字段信息复选框。
  2. 添加写出UDB/UDBX表结构转换器,将其与上一步的读入Excel转换器相连接。
  3. 在写出UDB/UDBX表结构中配置表结构对应关系,如下图:

  4. 执行模型。

结果展示

在SuperMap iDesktopX打开Sichuan.udbx数据源可查看具体创建结果,如下所示,创建了省级行政区和教育机构两个数据集(在SuperMap iDesktopX中数据集以别名显示)。

以省级行政区为例,通过数据集属性查看属性结构信息,结果如下图: