字符位置格式的语法

字符位置格式的语法指定一些信息,其中包括数据行中字符位置范围的开始字符位置和结束字符位置。

下图显示了字符位置 FILE 语句的语法。
元素 用途 重要注意事项
-end 指示数据行中结束字符位置范围的字符位置 end 值前必须有连字符。
fieldn 为正使用字符位置范围定义的数据字段指定名称 无。
filename 指定输入文件的名称。 无。
null string 指定 dbload 必须以空值替代的数据值 必须是加引号的字符串。
start 指示数据行中开始一定范围的字符位置的字符位置。如果您指定 start 而没有指定 end,那么它将代表单个字符。 无。

您可在数据字段定义或不同字段中重复相同的字符位置。

引用的 null string 的作用域是您定义它的数据字段。您可为每个允许空条目的字段定义显式的空字符串。

插入的数据类型对应于显式或缺省列列表。在数据字段宽度与其对应的字符列不同时,如果列较宽,那么将在插入值中填充空格;如果字段较宽,那么将会截断插入值。

如果命名的列数少于表中的列数,dbload 将插入为未命名的列指定的缺省值。如果未指定缺省值,dbload 将尝试插入空值。如果整个尝试违反了非空约束或唯一约束,插入操作将失败且将返回错误消息。

如果 INSERT 语句省略列名,那么 INSERT 缺省指定语句中指定的表中的每一列。如果 INSERT 语句省略了 VALUES 子句,那么 INSERT 缺省指定先前的 FILE 语句的每个字段。

如果列出的(或由缺省隐含的)列名数不匹配列出的(或由缺省隐含的)值数,将导致错误。

dbload INSERT 语句的语法类似于 SQL 中的 INSERT 语句,不同之处在于,在 dbload 中,INSERT 语句无法与 SELECT 语句合并使用。下图显示了字符位置格式的 dbload INSERT 语句的语法。
元素 用途 重要注意事项
column 指定接收新数据的列 无。
owner. 指定表所有者的用户名 无。
table 指定接收新数据的表 无。

字符位置格式的语法与定界符格式的语法相同。

使用此命令文件运行 dbload 的用户必须在命名的表上具有 Insert 特权。

1 请参阅《GBase 8s SQL 指南:语法》。