LOAD控制语句的语法和选项

LOAD实用程序控制语句及其多个选项定义了实用程序作业执行的功能。

您可以使用 ISPF /PDF编辑功能创建控制语句。 创建后,将其保存在顺序或分区数据集中。 当您创建用于运行作业的 JCL 时,请使用 SYSIN DD 语句指定包含实用程序控制语句的数据集的名称。

更改开始

语法图

备注: 更改开始语法图显示了LOAD实用程序语句中指定选项的受支持顺序。 虽然以不同的顺序指定选项可能可行,但 IBM 不支持替代规格。更改结束
阅读语法图跳过可视化语法图 LOAD DATAINDDNSYSRECINDDN数据定义名称INDDN(,数据定义名称)INCURSOR光标名称PREFORMATCOPYDICTIONARY1中间值PRESORTEDNOPRESORTEDYESPARALLEL( 编号-子任务)PRESORTROWFORMATRRFROWFORMATBRFRBALRSN_CONVERSIONEXTENDEDRBALRSN_CONVERSIONNONE简历-规格闪存拷贝规格KEEPDICTIONARYREUSELOGYESLOGNONOCOPYPEND工作ddn规格SORTKEYSSORTKEYSNO整数format-specFLOAT(S390)FLOAT(IEEE)EBCDICASCIIUNICODECCSID(,整数)NOSUBSENFORCECONSTRAINTS1ENFORCENONOCHECKPENDERRDDNSYSERRERRDDN数据定义名称MAPDDNSYSMAPMAPDDN数据定义名称DISCARDDNSYSDISCDISCARDDN数据定义名称DISCARDS0DISCARDS整数BACKOUTNOBACKOUTYESSORTDEVTdevice-typeSORTNUM整数CONTINUEIF( start: 结束)=X' 字节串'' 字符串'忽略规格Decfloat-spec覆盖规格排水规格INDEXDEFERNONEINDEXDEFERNPINONUNIQUEALLNONUNIQUEIMPLICIT_TZ' 时区字符串'UPDMAXASSIGNEDVALYESUPDMAXASSIGNEDVALNODEFINEAUXNODEFINEAUXYESFORCENONEFORCEREADERSALLKEEP_EMPTY_PAGESYESKEEP_EMPTY_PAGESNOINTO-TABLE-规格2
简历-规格
阅读语法图跳过可视化语法图RESUMENO3SHRLEVELNONESHRLEVELREFERENCE4REPLACE规格统计规格RESUMEYESSHRLEVELNONE规格SHRLEVELCHANGE
规格
阅读语法图跳过可视化语法图COPYDDN(SYSCOPY)( ddname1, ddname2)(, ddname2)RECOVERYDDN( ddname3, ddname4)
闪存拷贝规格
阅读语法图跳过可视化语法图FLASHCOPYNOFLASHCOPYYESCONSISTENTFCCOPYDDN( template-name)
统计规格
阅读语法图跳过可视化语法图 STATISTICS统计表规格 统计索引规格REPORTNOREPORTYESUPDATEALLUPDATEACCESSPATHSPACENONESTATCLGMEMSRT整数INVALIDATECACHENOINVALIDATECACHEYESHISTORYALLACCESSPATHSPACENONEFORCEROLLUPYESNO
统计表规格
阅读语法图跳过可视化语法图TABLE(ALL)SAMPLE整数USE PROFILETABLE( table-name)表格统计规格
表格统计规格
阅读语法图跳过可视化语法图SAMPLE整数COLUMNALLCOLUMN(,列名),COLGROUP(,列名)colgroup-stats-specUSE PROFILE
colgroup-stats-spec
阅读语法图跳过可视化语法图FREQVALCOUNT整数5MOSTBOTHLEASTHISTOGRAMNUMQUANTILES100NUMQUANTILES整数
统计索引规格
阅读语法图跳过可视化语法图INDEX(ALL)相关性统计规格INDEX(,索引名称相关性统计规格)
相关性统计规格
阅读语法图跳过可视化语法图KEYCARD6FREQVALNUMCOLS1COUNT10FREQVALNUMCOLS整数COUNT整数5MOSTBOTHLEASTHISTOGRAMNUMCOLS1NUMQUANTILES100NUMCOLS整数NUMQUANTILES100NUMQUANTILES整数
工作ddn规格
阅读语法图跳过可视化语法图WORKDDN(SYSUT1,SORTOUT)WORKDDN( ddname1, ddname2)( ddname1,排序)(SYSUT1, ddname2)
format-spec
阅读语法图跳过可视化语法图FORMATUNLOADSQL/DSINTERNALDELIMITEDCOLDEL','COLDELcoldelCHARDEL'"'CHARDELchardelDECPT'.'DECPTDECPTSPANNEDYESNO
忽略规格
阅读语法图跳过可视化语法图 IGNORE ( WHENPARTCONVVALPROCIDERRORDUPKEY )
Decfloat-spec
阅读语法图跳过可视化语法图 DECFLOAT_ROUNDMODE ROUND_CEILINGROUND_DOWNROUND_FLOORROUND_HALF_DOWNROUND_HALF_EVENROUND_HALF_UPROUND_UP
覆盖规格
阅读语法图跳过可视化语法图 OVERRIDE ( ,SYSTEMPERIODIDENTITYTRANSIDNONDETERMINISTICROWCHANGE )7
排水规格
阅读语法图跳过可视化语法图DRAIN_WAITIRLMRWT-值DRAIN_WAIT整数RETRYUTIMOUT值RETRY整数RETRY_DELAY计算默认值RETRY_DELAY整数SWITCHTIMENONESWITCHTIME时间戳记标记的持续时间表达式
标记的持续时间表达式
阅读语法图跳过可视化语法图CURRENT_DATECURRENT_TIMESTAMPWITH TIME ZONE +  - constantYEARYEARSMONTHMONTHSDAYDAYSHOURHOURSMINUTEMINUTESSECONDSECONDSMICROSECONDMICROSECONDS
注意:
  • 1 如果您指定了SHRLEVEL REFERENCE,则使用ENFORCE NO。
  • 2 关于INTO-TABLE规范的语法图和选项说明,请参阅 INTO-TABLE-spec
  • 3 INTO TABLE子句中的RESUME或REPLACE值会覆盖LOAD RESUME的默认值。
  • 4 SHRLEVEL REFERENCE 要求在表空间级别或 INTO TABLE PART 子句中指定 REPLACE。
  • 5 当未指定 COUNT 关键字时,该实用程序会自动确定计数值并收集最常出现的值。
  • 6 KEYCARD选项已弃用。 KEYCARD功能现已内置于索引内联统计的默认执行中,无法禁用。
  • 7 备选语法 :以下语法仍然可用:PERIODOVERRIDE 代替 OVERRIDE(SYSTEMPERIOD),TRANSIDOVERRIDE 代替 OVERRIDE(TRANSID),IDENTITYOVERRIDE 代替 OVERRIDE(IDENTITY)。 然而,PERIODOVERRIDE、TRANSIDOVERRIDE和IDENTITYOVERRIDE这些关键词已被弃用。
更改结束

选项说明

DATA
指定要加载的数据。 此关键词为可选,仅用于清晰起见。
INDDN ddname
指定输入数据集 或数据集

ddname 是作业步骤中DD语句的名称,或者实用程序输入流中模板的名称。 默认值为 SYSREC

更改开始如果指定了多个 ddname值 ,这些数据集将动态连接作为LOAD的输入。 您最多可以指定1000个 ddname 值。 您不能在作业步骤中多次指定相同的DD语句。更改结束

如果您使用DRDA快速加载, ddname 必须为SYSCLIEN。

输入数据集的记录格式必须是固定长度或可变长度。 数据集必须是一个顺序数据集,可通过基本顺序访问方法(BSAM)读取。

如果输入文件是HFS或 zFS 文件,请使用带有PATH选项的模板。

INCURSOR 光标名称
指定输入数据集为SELECT语句的结果表,由游标定义。 在LOAD使用光标之前,您必须先声明光标。 使用EXEC SQL实用程序定义光标。

cursor-name 是光标的名称。 这个名字不能超过八个字符。 指定的光标可用于 Db2® 系列交叉加载器功能,该功能允许您从任何符合DRDA标准的远程服务器加载数据。

限制:
  • 您不能将数据加载到定义了游标的同一表格中。
  • 您不能使用在从属表上定义的游标将数据加载到RI关系中的父表中。
  • 您不能指定字段规格,也不能对INCURSOR选项使用丢弃处理。
  • 您不能为INCURSOR指定以下选项
    • shrlevel变化
    • 诺苏布斯
    • 格式化 卸载
    • 格式 SQL/DS
    • 内部格式
    • 继续
    • WHEN
    • 是的
建议更改开始不要将光标放在与正在加载的表格位于同一表格空间中的表格上。 如果无法避免这种情况,请通过指定以下EXEC SQL语句来禁用SQL并行性:
EXEC SQL
SET CURRENT DEGREE = '1' ;
ENDEXEC                                                                   
在这种情况下,禁用并行有助于避免请求和耗尽之间的冲突。 更改结束
PREFORMAT
指定剩余页面在表空间和索引空间中预先格式化,直到与表名中指定的表相关联的高分配RBA。 预格式化在数据加载和索引建立之后进行。

PREFORMAT可以操作整个表空间及其索引空间,也可以操作分区表空间的一个分区以及分区索引(如果有)的相应分区。 指定LOAD PREFORMAT(而不是 PART integer PREFORMAT)会告诉LOAD在表空间级别进行序列化,从而禁止对单独分区进行并发处理。 如果您想在分区级别进行序列化,请指定 PART integer PREFORMAT。

PREFORMAT关键字也适用于与LOAD序列化的基础表或分区关联的LOB表空间和辅助索引。 XML对象没有预先格式化。

COPYDICTIONARY 整数
允许LOAD实用程序将现有压缩字典从一个分区复制到分区表空间的其他分区。 LOAD 从分区号是整数的分区复制当前压缩字典,并使用该压缩字典压缩被替换分区的输入数据。 整数的默认值为1。

COPYDICTIONARY 提供了将压缩字典复制到空分区的方法。 被复制的分区必须具有有效的压缩字典。

更改开始COPYDICTIONARY 命令仅对定义为压缩的分区复制压缩字典。更改结束

使用COPYDICTIONARY关键字时,有以下限制:

  • 仅当LOAD语句的目标是分区(非UTS)或按范围分区的表空间时,才能使用COPYDICTIONARY。
  • 在LOAD语句中,还必须指定PART integer REPLACE。
  • 简历 不能使用 COPYDICTIONARY 指定 YES。
  • LOAD语句中也不能指定KEEPDICTIONARY。
PRESORTED
指定输入数据集是否已按聚类键顺序排序。 如果输入数据集按聚类键顺序排列,LOAD实用程序可以同时执行RELOAD和BUILD阶段,并跳过聚类索引的排序。
指定输入数据集尚未排序。 LOAD实用程序必须对聚类索引进行排序。
YES
指定输入数据集已经排序。 LOAD实用程序不对聚类索引进行排序,而是并行执行RELOAD和BUILD阶段。

当指定“预先分类”为“是”时,必须满足以下要求:

  • 并行索引构建所需的所有数据集都必须可用。
  • 对于带有聚集分区索引的分区表空间,数据行的预排序顺序必须为:
    1. 按分区编号
    2. 通过在每个分区中对聚类索引进行关键排序
  • 对于具有聚集非分区索引的分区表空间,或具有单个表的非分区表空间,数据行的预排序顺序必须按照聚集索引的键排序。
  • 对于简单且分段(非UTS)的表格空间:
    • 数据行的预排序顺序必须按照表中聚簇索引的键排序。
    • LOAD语句只能包含一个INTO TABLE子句。
限制:
  • 在以下条件下,LOAD会发出警告信息,并继续处理,就像指定了PRESORTED NO一样:
    • 当SHRLEVEL CHANGE也被指定时
    • 当使用分区并行时
    • 当目标表没有索引时
    • 当指定了SORTKEYS NO时
    • 更改开始当PRESORT也被指定时更改结束
  • 只有带有REPLACE和PRESORTED YES的LOAD才能在RELOAD阶段重新启动。 如果在重新加载阶段重新启动带有“恢复”和“预排序”的“是”的加载,实用程序处理将异常终止,并且加载会发出错误消息。
  • 如果指定了 PRESORTED YES,并且 LOAD 确定输入数据集未按聚类键顺序排序,则 LOAD 会容忍不按顺序排列的键。 但是,对于聚类索引,不收集内联统计信息,实时统计信息无效。 LOAD发出警告信息。
PARALLEL 或者 PARALLEL 子任务数量
指定LOAD可并行处理的最大子任务数。 通过使用并行子任务,该实用程序可以缩短加载操作的时间。

如果从单个输入数据集加载,并行处理(PARALLEL)可实现额外数据并行处理。

num-subtasks 必须是介于 0 和 32767 之间的整数(包括 0 和 32767)。

建议 :指定 PARALLEL(0) 或 PARALLEL。

如果您指定了 PARALLEL 关键字,但没有指定值,则默认值为 PARALLEL(0)。

特定LOAD作业的子任务总数取决于以下因素:

  • 要加载的数据分区数量
  • 待加载的索引数量
  • 是否收集了内联统计信息
  • LOAD语句是为整个作业指定一个输入数据集,还是为每个分区指定一个输入数据集。 更改开始(如果您指定了多个ddname值的INDDN,LOAD会将该指定视为单个输入数据集,用于计算子任务。)更改结束

LOAD根据内存限制和可用处理器数量计算并行处理这些子任务的最佳数量。

LOAD使用PARALLEL的值如下:

  • 如果您指定 PARALLEL(0) 或 PARALLEL: LOAD ,则使用其计算的最佳并行子任务数。
  • 如果您指定 PARALLEL(1): 该实用程序将以加载操作所需的最低并行子任务数量加载数据。
  • 如果您为 PARALLEL 指定的值不是 0 或 1 :如果该值小于计算出的并行子任务的最佳数量,LOAD 将使用指定的值或所需的并行子任务的最小数量。 如果值大于计算出的并行子任务的最佳数量,LOAD会将并行子任务的数量限制为最佳数量。

PARALLEL 覆盖 PARAMDEG_UTIL 子系统参数的值。

建议 :如果您指定了并行和SHRLEVEL CHANGE,请将表空间的LOCKSIZE属性设置为ROW,以减少并行子任务之间的争用。

更改开始在以下情况下,将忽略“PARALLEL”:更改结束

更改开始
  • 指定一个输入数据集,LOAD语句包括以下任一选项:
    • 是的
    • INCURSOR
    • 预先分类
    • 内部格式
    • 格式 SQL/DS
  • 要加载的表空间是一个按分区增长表空间,LOAD语句包含SHRLEVEL NONE选项。
  • 要加载的表具有 XML 列,位于简单或分段(非 UTS)表空间中,LOAD 语句包含 SHRLEVEL CHANGE 选项。
  • 要加载的表包含LOB或XML列,LOAD语句包含SHRLEVEL NONE选项。
更改结束
更改开始预分拣更改结束
更改开始指定在将输入记录加载到目标表空间之前,按聚类顺序对其进行排序。 表格空间中已有的行不受影响。

LOAD需要对数据进行预分类,因此需要一个聚类索引。 聚类索引可以隐式或显式创建。 否则,如果不存在聚类索引,则忽略PRESORT。 如果一个表空间包含多个表,且并非所有表都拥有聚集索引,则所有输入记录都会排序。 然而,对于任何没有聚集索引的表,加载后的记录顺序可能与输入数据集中的顺序不一致。

预分拣处理在内存中传递记录,不需要辅助数据集来保存记录。

如果指定了 PRESORT,则必须同时指定 SORTDEVT,以便动态分配所有必要的排序数据集。 这些数据集的名称在LOAD使用的数据集中进行了描述。

您不能将PRESORT与以下任何选项或对象一起指定:

  • 包含LOB或XML列的表格
  • 具有克隆关系的表空间
  • 散列组织的表空间
  • 格式 展开
  • 格式化 卸载
  • 格式 SQL/DS
  • 格式 是否已展开

如果您指定 PRESORT 并选择 PRESORTED YES,PRESORTED YES 将被忽略。

在以下情况下,LOAD会忽略PRESORT:

  • 更改开始如果指定了BACKOUT更改结束
  • 如果实用程序无法确定文件大小,例如在使用交叉加载器功能或从磁带加载时。 在这种情况下,请指定 NUMRECS 或 SORTKEYS 来表示文件大小。
更改结束
ROWFORMAT
指定受影响表空间或分区的输出行格式。 该关键字对参与CLONE关系的LOB、目录、目录、XML或通用(UTS)表空间没有影响。
重要提示: ROWFORMAT在 Db2 12 for z/OS® ,这意味着不鼓励使用它。 虽然该关键词仍受支持,但最终可能会被移除。 参见 Db2 中的废弃功能 12
BRF
指定正在重组或替换的表空间或分区将转换为基本行格式或保留为基本行格式。
RRF
指定正在重组或替换的表空间或分区将转换为或保留为重新排序行格式。
更改开始 RBALRSN_CONVERSION 更改结束
更改开始指定目标对象在LOAD实用程序完成后采用的RBA或LRSN格式。
重要提示 :RBALRSN_CONVERSION 已弃用,即不建议使用。 虽然该关键词仍受支持,但最终可能会被移除。 如果指定了BASIC,或者为6字节格式的对象指定了NONE,则该实用程序将无法运行。

如果指定了 RBALRSN_CONVERSION,则必须同时指定 REPLACE 关键字。

EXTENDED
指定如果以6字节的基本格式找到对象,则将其转换为10字节的扩展格式。

默认值为扩展。

NONE
指定不进行转换。

如果在基本6字节格式的表空间上指定了RBALRSN_CONVERSION NONE,则该实用程序将失败。

如果存在克隆关系,则无法进行页面集转换。 对于克隆关系,必须删除克隆表,将基础表转换为扩展的10字节格式,然后重新创建克隆表。

当将页面格式转换为扩展格式时,加载替换基础表空间不会转换与该基础表空间关联的版本化XML表空间。

更改结束
RESUME
指示记录是加载到空表空间还是非空表空间。 对于非分段表空间,已标记为删除的行或已删除表的行不会重复使用空间。
重要提示: 指定LOAD RESUME(而不是 PART integer RESUME )会告诉LOAD在整个表空间进行序列化,这会阻止对单独分区的并发处理。 如果您想同时处理其他分区,请指定 PART integer RESUME。
将记录加载到空表格空间中。 如果表空间不为空,且您没有使用 REPLACE,则会发出一条消息,实用程序作业步骤以作业步骤条件代码 8 终止。

对于包含已删除行或已删除表行的非分段表空间,使用REPLACE关键字可以提高效率。

默认值“否 ”,除非您用 “PART integer RESUME YES”覆盖它。

YES
将记录加载到非空表空间中。 如果表格空间为空,则会显示一条警告消息,但表格空间已加载。 从表格空间当前数据结尾开始加载。 空间不会被重新用于标记为已删除的行或已删除表的行。

更改开始简历 是的,此选项不适用于SHRLEVEL REFERENCE。更改结束

加载简历 是 缩放级别 更改 激活加载的每一行的前触发器和后触发器。

更改开始如果使用 COPYDDN 或 RECOVERYDDN 指定 LOAD RESUME YES SHRLEVEL NONE,则将在 LOAD 处理期间创建内联图像副本。 内联图像副本将是表格空间的完整副本。 如果使用 INTO TABLE PART 指定了单个分区,则映像副本和 SYSCOPY 记录将仅包含这些分区。更改结束

更改开始BACKOUT更改结束
更改开始指定如果当前加载操作加载的所有行中的任何记录导致对象不可用,是否删除这些行。 如果单独指定BACKOUT关键字,则默认值为YES。 更改开始但是,除非指定非零的丢弃值且丢弃记录的数量超过丢弃值,否则不会发生回退处理。更改结束

更改开始仅当 RESUME YES 和 SHRLEVEL NONE 时,BACKOUT YES 才可用;在表空间级别或任何 INTO TABLE PART 子句中,不能指定 REPLACE 或 RESUME NO。 您也不能在“后退”为“是”的情况下指定“INCURSOR”。更改结束

指定如果任何输入记录导致对象不可用,则删除当前LOAD操作加载的所有行。 LOAD完成后,表格空间可用。 当指定BACKOUT时,YES是默认值。
指定如果发现错误记录,LOAD所做的更新将不会被回滚。 当未指定BACKOUT关键字时,此行为为默认行为。
更改结束
SHRLEVEL
指定应用程序在LOAD实用程序作业期间可同时访问表空间或分区的程度。 以下参数值按照允许并发访问量的递增顺序排列。
None
指定应用程序不能同时访问表空间或分区。
更改开始引用更改结束
更改开始指定应用程序可以同时从LOAD正在加载数据的表空间或分区读取数据,但SWITCH阶段除外。

LOAD REPLACE SHRLEVEL REFERENCE 指定将数据重新加载到目标对象的影子副本中,LOAD 在 SWITCH 阶段将应用程序的未来访问从原始副本切换到影子副本。 此选项不支持具有克隆关系的表空间,也不支持使用LOB或XML列定义的目标表。

更改开始SHRLEVEL REFERENCE要求在表空间级别或INTO TABLE PART子句中指定REPLACE。更改结束

更改开始如果指定了SHRLEVEL REFERENCE,则使用ENFORCE NO选项。 更改结束

更改开始如果LOAD REPLACE SHRLEVEL REFERENCE作业未能获得必要的流量,则该实用程序将终止,并返回代码8。更改结束

更改结束
CHANGE
指定应用程序可以在LOAD加载数据的大部分时间内同时读写LOAD正在加载数据的表空间或分区。

加载级别变化的工作功能类似于批量插入。 常规的LOAD操作会占用整个表空间,而LOAD SHRLEVEL CHANGE功能就像INSERT语句,在访问对象时使用声明。

如果您指定了SHRLEVEL CHANGE,则不能指定以下参数:
  • INCURSOR
  • 简历 否
  • REPLACE
  • KEEPDICTIONARY
  • 日志编号
  • 强制执行 不
  • 统计信息
  • COPYDDN
  • 恢复DDN
  • MAPDDN
  • 预设格式
  • 复用
  • 部分整数替换

如果您正在加载单个分区并指定 SHRLEVEL CHANGE,则必须同时指定 RESUME YES。 您可以在单独的 PART 子句中指定 RESUME YES,也可以从主 LOAD 语句中继承它。

加载简历 是 缩放级别 更改 不执行 SORT、BUILD、SORTBLD、INDEXVAL 或 ENFORCE 阶段,兼容性和并发性考虑因素也有所不同。

通常情况下,LOAD RESUME YES(加载并恢复)会在已有记录的末尾加载记录。 然而,对于带有SHRLEVEL CHANGE选项的LOAD RESUME YES工作,实用程序会尝试将新记录插入可用空间中,并尽可能靠近聚类顺序。 此LOAD作业不会创建任何额外的空闲页面。 如果插入的记录很多,这些记录很可能以非集群顺序存储。 在这种情况下,应在LOAD实用程序加载记录后运行REORG TABLESPACE实用程序。

建议 :如果LOAD实用程序加载了许多记录,请运行RUNSTATS SHRLEVEL CHANGE UPDATE SPACE,然后运行条件REORG。

当正在加载的表中存在标识列时,可以通过为标识列指定CACHE属性来提高性能。

在 XML 表空间上,LOAD RESUME YES SHRLEVEL CHANGE 禁用了锁定升级。

LOAD RESUME YES SHRLEVEL CHANGE期间创建的日志记录可供 Db2 LOAD RESUME YES SHRLEVEL CHANGE期间创建的日志记录可用于 Db2DataPropagator, 如果正在加载的表定义了数据捕获更改。

加载带有SHRLEVEL CHANGE选项的工作不会向 SYSIBM.SYSCOPY 中插入任何记录。

仅在SHRLEVEL CHANGE时,行触发器才会被激活。 每行的语句触发器也会在LOAD RESUME YES SHRLEVEL CHANGE时激活。

REPLACE
指示在加载记录之前是否需要将表空间及其所有索引重置为空。 使用此选项,新加载的行将替换表空间中所有表的所有现有行,而不仅仅是您正在加载的表中的行。 对于 Db2 对于STOGROUP定义的数据集,除非您还指定了REUSE选项,否则数据集将被删除并使用此选项重新定义。 您必须对执行LOAD REPLACE的表空间中的所有表拥有LOAD权限。 如果您在没有权限的情况下尝试LOAD REPLACE,则会收到错误信息。

如果指定REPLACE选项来替换整个表空间,则不能同时指定INTO TABLE的 PART整数REPLACE选项

指定LOAD REPLACE(而不是 PART integer REPLACE)会告诉LOAD在表空间级别进行序列化。 如果您想在分区级别进行序列化,请指定 PART integer REPLACE。 请参阅关键词“INTO TABLE”下的“描述”部分,了解有关在分区级别指定REPLACE的信息。

限制:
  • 在定义了数据版本的表上不允许使用LOAD REPLACE。
  • 在表空间运行 RECOVER 操作后,不允许在表空间上执行 LOAD REPLACE 操作,直到未定义的更改生效。 在运行LOAD REPLACE之前,您需要在整个表空间运行REORG,以完成时间点恢复过程。
  • 启用归档的表不允许使用LOAD REPLACE。 (LOAD REPLACE 允许在包含归档表的表空间中使用。)
COPYDDN (ddname1,ddname2)

指定主( ddname1 )和备份 ( ddname2 ) 镜像副本的数据集。

ddname 是DD名称或上一个模板控制语句中的模板名称。 如果实用程序处理检测到指定的名称在当前作业步骤中既是DD名称又是模板名称,则实用程序将使用DD名称。 默认值 为SYSCOPY ,用于主副本。 备份副本不存在默认值。

更改开始您可以使用REPLACE或RESUME YES SHRLEVEL NONE指定COPYDDN:更改结束

  • 更改开始如果指定了 COPYDDN 和 REPLACE,则在 LOAD 执行时为指定的表或分区创建完整的图像复制数据集(SHRLEVEL REFERENCE)。 制作图像副本的表格空间或分区不会处于待复制状态。 更改结束
  • 更改开始如果指定 COPYDDN 为 RESUME YES SHRLEVEL NONE,则在 LOAD 处理期间创建内联图像副本。 内联图像副本将是表格空间的完整副本。 如果使用 INTO TABLE PART 指定了单个分区,则映像副本和 SYSCOPY 记录将仅包含这些分区。 如果在表空间级别指定了 COPYDDN,则不能在 INTO TABLE PART 级别指定。更改结束

更改开始当不执行 ENFORCE 或 INDEXVAL 阶段时,不建议将 LOAD REPLACE 期间创建的镜像副本用于 RECOVER TOCOPY,因为这些镜像副本可能包含唯一的索引冲突、参照约束冲突或索引评估错误。 更改结束

更改开始如果在表空间级别指定 COPYDDN,并至少指定一个 INTO TABLE PART 子句,则将创建一个顺序内联副本,其中仅包含 LOAD 语句中指定的分区的页面。 LOAD操作在分区级别进行序列化,以便并发LOAD作业可以在同一表空间的其他分区上运行。 此外,任何全局复制选项(例如指定的磁带驱动器)都适用于所有分区级别的复制。更改结束

如果在加载包含XML数据的表格时指定COPYDDN,则仅对基本表格空间进行内联复制,不对XML表格空间进行内联复制。

如果在加载包含LOB列的表时指定COPYDDN, Db2 不会创建任何索引、LOB表空间或XML表空间的副本。 您必须分别执行这些任务。

RECOVERYDDN (ddname3,ddname4)

指定主( ddname3 )和备份 ( ddname4 ) 复制数据集的 DD 语句,用于恢复站点上的镜像复制。

ddname 是DD名称或上一个模板控制语句中的模板名称。 如果实用程序处理检测到指定的名称在当前作业步骤中既是DD名称又是模板名称,则实用程序将使用DD名称。

更改开始您可以使用REPLACE或RESUME YES SHRLEVEL NONE指定RECOVERYDDN。 如果在表空间级别指定了 RECOVERYDDN,则不能在 INTO TABLE PART 级别指定。 更改结束

您不能拥有重复的图像复制数据集。

COPYDDN描述中列出的限制和要求也适用于RECOVERYDDN。

FLASHCOPY
指定是否使用 FlashCopy® 技术创建对象的副本。 有效值为“是”、“否”或“一致”。 当使用 FlashCopy 时,将为对象的每个分区或部分创建单独的数据集。

仅在 Db2 数据集位于 FlashCopy 版本2磁盘卷上。

实用程序控制语句中的 FlashCopy 规格优先于使用子系统参数定义的 FlashCopy 规格。 Db2 子系统参数。 如果 FlashCopy 子系统参数指定使用 FlashCopy 作为该实用程序的默认行为,则可以从实用程序控制语句中省略FLASHCOPY选项。

重要提示 :如果输入的数据集少于一个气缸,则无论FLASHCOPY设置如何, FlashCopy 技术可能都不会用于复制对象。 如果未使用 FlashCopy ,则由IDCAMS进行复制。
指定不发送 FlashCopy。 NO是FLASHCOPY的默认值。
YES
指定使用 FlashCopy 技术复制对象。
重要提示: 在以下情况下,即使指定了 YES,COPY 实用程序也可能不使用 FlashCopy :
  • FlashCopy 版本2磁盘卷不可用
  • 源跟踪已经是 FlashCopy 操作的目标
  • 目标轨迹是 FlashCopy 操作的来源
  • 副本的关系数已超出上限
如果未使用 FlashCopy ,LOAD实用程序将使用传统的I/O方法复制对象,这可能会导致执行时间比预期更长。
CONSISTENT
当指定了 SHRLEVEL CHANGE 时,指定使用 FlashCopy 技术复制对象,并且从副本中撤消任何未提交的工作,以使副本保持一致。 如果指定了SHRLEVEL NONE,则图像副本已经一致,无需指定CONSISTENT。

无需顺序格式图像副本,即可使用一致的 FlashCopy 图像副本进行恢复。

在实用程序处理过程中,指定“FLASHCOPY CONSISTENT”需要额外的时间和系统资源,因为实用程序必须读取日志并将更改应用到图像副本。 同样,从一致的 FlashCopy 图像副本中恢复也需要额外的时间和系统资源来读取日志并重新应用之前撤消的工作。

限制 :复制带有“未记录”属性的对象时,不能指定“一致性”。 如果为定义了“未记录”属性的对象指定了“一致性”,则该实用程序不会复制该对象,并发出消息 DSNU076I ,返回代码为 8。
FCCOPYDDN
指定用于创建 FlashCopy 图像副本数据集名称的模板。 如果在使用 FlashCopy 时,LOAD控制语句中未指定FCCOPYDDN的值,则由FCCOPYDDN子系统参数指定的值决定要使用的模板。
(模板名称
FlashCopy 图片副本的数据集名称根据模板规范进行分配。 对于表空间或索引空间级别的 FlashCopy 图像副本,由于每个分区或部分都分配有一个数据集,因此请确保模板规范中的数据集命名约定足够唯一。 使用&DSNUM变量,该变量在执行时解析为分区号或零件号。
STATISTICS
指定为表空间、索引或两者收集统计信息;统计信息存储在 Db2 目录中。

如果您指定了STATISTICS关键字,但没有指定其他统计信息相关统计信息选项,则该实用程序仅收集表空间统计信息。 统计信息保存在基础表空间中,而不是LOB表空间或XML表空间中。

限制:
  • 如果您为加密数据指定了“统计信息”,则 Db2 可能无法提供有关此数据的有用统计信息。
  • 如果指定的表是表克隆,则无法指定统计信息。

所有由统计表关键字标识的表必须属于LOAD实用程序控制语句的INTO TABLE选项中指定表或表的表空间。

TABLE
指定要收集列信息的表格。

不要使用LIST关键字指定STATISTICS TABLE table-name。 请改为指定“统计表(全部)”。

全部)
指定为表空间中所有表的所有列收集信息。
(表名
指定要收集列信息的表。 如果省略限定符,则使用实用程序作业的用户标识符。 如果表格名称中包含空格,请用引号将其括起来。

如果指定了多个表,则必须重复 TABLE 选项。 在指定任何索引关键字之前或之后,必须完整指定多个表选项。 例如,任何两个 TABLE 关键字之间不能指定 INDEX 关键字。

SAMPLE 整数
当对索引的非前导索引列或非索引列进行统计时,指示要采样的行百分比。 您可以指定1到100之间的任何数值。

默认值为 25。 LOB表空间不允许使用SAMPLE选项。

更改开始使用概要文件更改结束
更改开始指定用于收集表格统计数据的存储统计配置文件。 统计资料使用“设置资料”选项创建,并使用“更新资料”选项更新。

列、列组和索引规格不允许作为控制语句的一部分,但存储在统计配置文件中时可以使用。

如果指定表不存在任何配置文件,则收集默认统计信息:
  • 当未指定表名时,将使用 TABLE ALL INDEX ALL 作为配置文件规范。
  • 当指定表名时,COLUMN ALL INDEX ALL用于配置文件说明。

更改开始当您指定使用配置文件时,配置文件选项将包含在消息 DSNU1376I 中的SYSPRINT中。更改结束

更改开始FL 507 此外, Db2 删除个人资料中不包含的现有统计数据。 所有不在配置文件中的频率、钥匙卡和直方图统计数据将从目录中删除。 这些统计信息仅针对指定的表或分区被删除。 统计信息不会从目录历史表中删除。 如果指定UPDATE NONE或UPDATE SPACE,则不会删除任何统计数据。 更改结束

更改结束
COLUMN
指定要收集列信息的列。
仅当您指定要收集统计数据的特定表(TABLE (表名) )时,才能指定此选项。 如果您指定了特定的表,但没有指定列选项,则使用默认值COLUMN(ALL)。 如果您在使用TABLE选项时没有指定特定的表格,则无法指定COLUMN选项;但会默认使用COLUMN(ALL)。
(ALL)
指定统计表中所有列的数据。
(列名,……)
指定要收集统计数据的列。

您可以指定列名称列表,最多10个。 如果您指定了多个列,请用逗号分隔每个名称。

INDEX
指定需要收集信息的索引。 索引的第一列需要收集列信息。 所有索引必须与同一个表空间相关联,该表空间必须是在 TABLESPACE 选项中指定的表空间。

不要使用LIST关键字指定STATISTICS INDEX 索引名称。 请改为指定“统计索引(全部)”。

全部)
指定为表空间中包含的表上定义的所有索引收集列信息。
(索引名称
指定要收集信息的索引。 如果索引名称中包含空格,请用引号将其括起来。
COLGROUP (列名 ,……
表示指定的列集被视为一个组。 此选项启用内联统计,以收集指定列组的基本值。 内联统计在处理XML表格空间和索引时忽略COLGROUP。

当您指定COLGROUP关键字时,内联统计信息将收集指定列组的关联统计信息。 如果您希望内联统计同时收集分布统计,请指定带有COLGROUP的FREQVAL选项。

列名…… 指定属于列组的列名。

更改开始当您在单列上定义列组时,可以通过指定 STATCLGMEMSRT 选项或更改 STATCLGSRT 子系统参数的值来提高 RUNSTATS 的性能。 您可以使用这些选项,通过外部排序程序避免列组排序。更改结束

要指定多个列组,请重复COLGROUP选项。

限制 :COLGROUP值的长度不能超过 SYSIBM.SYSCOLDIST 目录表中COLVALUE列的最大长度。
FREQVAL
当指定了COLGROUP选项时,表示还要为指定的列组收集频率统计信息。 (COLGROUP表示正在收集基数统计信息。) 每列数据都收集一组统计信息。 您必须指定整数COUNT和COLGROUP FREQVAL。 更改开始在处理XML表格空间时,该实用工具会忽略FREQVAL MOST/LEAST/BOTH。更改结束
数计数
更改开始指示要从指定列组中收集的频繁出现的值的数量。 例如,COUNT 20表示 Db2 从列组中收集20个经常出现的值。 更改开始如果未指定 COUNT 关键字,该实用工具会自动确定计数值并收集最常出现的值。更改结束 将值指定为1000或更高可能会增加某些SQL语句的准备时间。 此外,指定非常大的COUNT值将占用大量存储空间,这可能会导致在具有数百个分区的分区对象上执行实用程序时出现存储限制。
MOST
表示当指定COLGROUP时,该实用工具用于收集指定列组中最频繁出现的值。
BOTH
表示当指定COLGROUP时,该实用程序用于收集指定列集中的出现频率最高和最低的值。
LEAST
表示当指定COLGROUP时,该实用工具用于收集指定列组中出现的频率最低的值。
更改结束
HISTOGRAM
当指定COLGROUP选项时,表示将为指定的列组收集直方图统计数据。 直列统计在处理XML表格空间和索引时忽略直方图。

通过内联统计收集的直方图统计与通过RUNSTATS收集的直方图统计不同。 使用内联统计收集的直方图统计数据只是粗略的估计值。 如需更精确的统计信息,请使用RUNSTATS。

NUMQUANTILES 整数
指示实用程序收集的定量。 整数必须大于或等于1。 您指定的分位数数量不得超过列或列组中不同值的总数。 最大分位数为100。

当省略 NUMQUANTILES 关键字时,NUMQUANTILES 的默认值为 100。 根据表中记录的数量,将分位数重新调整为最佳数量。

KEYCARD
在实用程序控制语句中,KEYCARD选项已弃用,无需再指定它来收集索引中键列的值的基本统计信息。

当指定了统计和索引选项时,该实用程序总是收集索引中所有1到n个关键列组合的所有不同值。n 是索引中的列数。 由于KEYCARD不再使用,因此无法禁用此功能。

该实用程序允许指定KEYCARD选项。 如果指定了STATISTICS和INDEX,且控制语句包含或排除了KEYCARD选项,则实用程序不会发出任何消息。

FREQVAL
控制频繁值统计数据的收集。如果指定了 FREQVAL,则必须在其后紧跟 NUMCOLS 关键字
NUMCOLS
指示从指定索引中收集频繁值时需要连接的关键列的数量。 指定“3”表示频繁值将在前三个关键列的串联上收集。 默认值为1 ,表示 Db2 在索引的第一列中收集频繁出现的值。
COUNT
指示要收集的频繁值的数量。 指定“15”表示 Db2 从指定的关键列中收集15个常用值。 更改开始如果未指定 COUNT 关键字,则 Db2 会收集自动确定的频繁出现值的统计信息。更改结束
HISTOGRAM
表示需要指定索引的直方图统计。
NUMCOLS
从指定索引收集直方图统计数据时,要连接的关键列的数量。
数量
NUMQUANTILES后面的整数表示请求的数量分位数。 整数必须大于或等于1。

如果直方图统计的指定键列是混合顺序的,则只能对具有相同顺序的键进行直方图统计,系统会 DSNU633I 发出警告信息。

相关信息:
REPORT
指定是否生成一组消息来报告收集的统计数据。
表示该组消息不作为输出发送到 SYSPRINT。
YES
表示将消息集作为输出发送到 SYSPRINT。 生成的消息取决于使用RUNSTATS实用程序指定的关键字(如TABLESPACE、INDEX、TABLE和COLUMN)的组合。 然而,这些信息并不取决于 UPDATE选项的规格。 报告 YES 始终生成空间和访问路径统计报告。
UPDATE
指示是否将收集的统计数据插入目录表。 UPDATE还允许您选择用于访问路径选择的统计信息或数据库管理员使用的统计信息。
全部
表示所有收集的统计数据将在目录中更新。
ACCESSPATH
表示仅更新目录表中用于访问路径选择的统计信息列。
SPACE
表示只有提供统计数据的目录表列才会被更新,以帮助数据库管理员评估特定表空间或索引的状态。
NONE
表示不会用收集的统计数据更新任何目录表。 此选项仅在指定“是”时有效。
更改开始STATCLGMEMSRT 整数更改结束
更改开始指定当使用COLGROUP选项定义的单个列收集统计数据时,该实用程序可用于记录排序的内存量。 使用STATCLGMEMSRT避免外部排序程序对列组排序,这可能会对统计收集的性能产生负面影响。

integer 指定该实用程序可用于内存排序的内存空间(以兆字节为单位)。 如果排序所需的空间量超过整数值 ,则该实用程序会调用排序程序。 如果指定0,则程序会自动调用排序程序。

列组排序所需的空间取决于以下因素:

  • 该实用程序正在收集统计数据的列组数量
  • 单柱列组的长度
  • 列中不同值的数量(基数)

STATCLGMEMSRT的值优先于STATCLGSRT子系统参数的值。

更改结束
更改开始 INVALIDATECACHE 更改结束
更改开始指示动态语句缓存中的语句是否因内联统计信息收集而失效。 此选项不会阻止该实用程序因其他原因而使缓存的语句失效。
YES
动态缓存中的语句对于作业语句中指定的对象无效。
动态缓存中的语句不会因作业语句中指定的对象的嵌入式统计信息而失效。 然而,缓存的语句可能会因内联统计以外的原因而失效,例如当实用程序解析受限状态的对象或应用挂起的ALTER操作时。
更改结束
HISTORY
指定记录所有目录表插入或更新到目录历史表的操作。

默认值是在面板 DSNTIP6 的统计历史字段中指定的值。

ALL
表示所有收集的统计数据将在目录历史表中更新。
ACCESSPATH
表示仅更新目录历史表中用于访问路径选择的统计信息列。
SPACE
表示在目录历史表中仅更新与空间相关的目录统计信息。
NONE
表示不会用收集的统计数据更新目录历史表。
FORCEROLLUP
指定在执行RUNSTATS时,即使某些分区尚未收集统计信息(例如分区尚未加载任何数据),是否仍要汇总或汇总统计信息。 优化器使用汇总统计信息来选择最佳访问路径。
YES
表示即使某些分区可能不包含数据,也要进行强制聚合或汇总处理。
NO
表示只有在所有分区都有数据可用时,才进行聚合或汇总。
如果无法获得所有分区的数据,且面板 DSNTIP6 上的 STATISTICS ROLLUP 安装值设置为 NO,则会发出 DSNU623I 消息。
KEEPDICTIONARY
防止LOAD实用程序生成新的压缩字典。 LOAD保留当前压缩字典,并将其用于压缩输入数据。 此选项可省去建立新词典的成本。

对于XML表格空间,KEEPDICTIONARY关键字将被忽略。 如果指定 REPLACE,则删除 XML 表空间或分区的任何现有字典。 如果您没有指定 REPLACE,则将保存 XML 表空间或分区的任何现有字典。

Db2 在执行将表空间从基本行格式更改为重新排序行格式的REORG或LOAD REPLACE时,忽略KEEPDICTIONARY选项。

更改开始仅当加载的表空间定义为压缩时,此关键字才有效。更改结束

如果表格空间或分区为空, Db2 执行以下操作之一:

  • Db2 如果压缩字典不存在,则创建一个字典,但前提是表空间不是简单表空间。
  • Db2 如果存在压缩字典,则保留字典。

如果当表空间或分区不为空时指定了 RESUME NO 和 REPLACE,则 Db2 执行与表空间或分区为空时相同的操作。

如果表格空间或分区不为空,且指定了“继续”选项,则 Db2 执行以下操作之一:

  • Db2 如果压缩字典不存在,则不会创建字典。
  • Db2 如果存在压缩字典,则保留字典。
注意 :您必须使用KEEPDICTIONARY来确保压缩字典得到维护。
REUSE
指定(当与REPLACE一起使用时)LOAD将在逻辑上重置并重复使用 Db2 -管理数据集,无需删除和重新定义。 如果您没有指定REUSE, Db2 删除并重新定义 Db2 -管理数据集,以进行重置。

REUSE(重复使用)必须与REPLACE(替换)配合使用,才能对所有数据集进行逻辑重置。 但是,如果您指定表空间为REUSE,分区级别为REPLACE,则只有被替换的分区在逻辑上被重置。

如果数据集具有多个范围,则当您指定REUSE参数时,这些范围不会被释放。

LOG
指示在加载过程的重新加载阶段是否发生记录,用于加载SHRLEVEL NONE和加载恢复YES SHRLEVEL CHANGE执行。 对于LOAD RESUME YES SHRLEVEL REFERENCE和LOAD REPLACE SHRLEVEL REFERENCE,LOG NO始终适用。
是的
指定在加载过程中进行常规记录。 所有加载的记录都会被记录下来。 如果表格空间具有“未登录”属性, Db2 则加载时不记录。
NO
指定在加载过程中不记录数据。 如果表空间具有LOGGED属性,则NO选项会针对加载的表所在的表空间或分区设置COPY-pending限制。 在限制条件被取消之前,SQL无法更新表格空间中的任何表格或分区。 有关解除限制的方法,请参阅重置待复制状态

如果您加载分区表空间的一个分区,并且该表空间具有二级索引,则在构建阶段可能会发生一些日志记录,因为 Db2 记录索引结构的任何更改。 这种日志记录允许在发生异常时恢复二级索引,并允许并发操作。

Db2 将未登录创建的表格空间视为已指定“登录”的表格空间。 如果您指定了日志编号,但没有指定 COPYDDN,则基础表空间将处于待复制状态。 如果XML列是空值且未加载,则只有基础表空间处于待复制状态。

LOB表空间会影响记录,同时 Db2 加载LOB列,无论LOB表空间是否定义为LOG YES或LOG NO。

NOCOPYPEND
指定LOAD不将表空间设置为COPY-pending状态,即使指定了LOG NO。 NOCOPYPEND规范不会开启或更改索引的任何信息性COPY-pending(ICOPY)状态。 NOCOPYPEND 规范不会关闭 LOAD 之前设置的任何 COPY-pending 状态。 如果未出现其他错误或警告,则正常完成LOAD LOG NO NOCOPYPEND作业将返回0代码。

Db2 如果您在加载期间指定了COPYDDN来制作本地站点内联图像副本,则忽略NOCOPYPEND规范。 如果表格空间具有“未登录”属性,则忽略“未复制”属性。

注意: 仅当表空间中的数据丢失时,可通过其他LOAD作业轻松重建时,才指定NOCOPYPEND选项。 如果您没有在LOAD后复制图像,则无法使用RECOVER实用程序恢复表空间,并且可能会丢失数据。
WORKDDN ddname1,ddname2
指定临时工作文件的DD语句,用于排序输入和排序输出。 如果LOAD涉及带索引的表格,则需要临时工作文件,用于排序输入和输出。

ddname1 是DD中排序输入临时工作文件的名称。 默认值SYSUT1

ddname2 是DD中用于临时工作文件的名称,用于排序输出。 默认值 为SORTOUT

WORKDDN关键字指定DD名称或上一个TEMPLATE控制语句中的TEMPLATE名称。 如果实用程序处理检测到指定的名称在当前作业步骤中既是DD名称又是模板名称,则实用程序将使用DD名称。 有关模板规格的更多信息,请参阅模板

SORTKEYS
指定在RELOAD和SORTBLD阶段并行排序索引键,以提高性能。 如果LOAD能够估算输入文件的大小,并且至少建立了两个或更多索引,且未指定SORTKEYS NO,则此操作为默认行为。
整数
指定一个整数 ,用于估算要排序的索引键的数量。 整数必须为0到562 949 953 421 311之间的正整数。
表示默认的 SORTKEYS 行为将被关闭。

对于磁盘上的顺序数据集,当未指定 SORTKEYS n 或 NUMRECS n 时,LOAD 会尝试根据 SORTKEYS 处理的输入数据集大小来计算正在处理的记录数。 如果指定了 SORTKEYS nNUMRECS n ,LOAD 会使用提供的值作为要处理的估计记录数。

如果在同一个LOAD语句中,在表级别指定了NUMRECS关键字,则不能在SORTKEYS关键字上指定一个整数值。 要关闭并行排序,当指定了 NUMRECS 关键字时,可以指定 SORTKEYS NO。

更改开始当指定了 SORTKEYS 时,LOAD 会在能够估算出排序的数据量或键数量时尝试并行索引构建。 在单个索引的情况下,LOAD会尝试通过在重新加载处理的同时运行索引排序来传递键。 更改结束

更改开始当未指定 SORTKEYS,且 LOAD 无法根据 NUMRECS 规范确定有效估算时,对于单个索引,LOAD 不会使用并行索引构建或键管道,而是依靠单独的 SORT 和 BUILD 阶段来处理索引键。 更改结束

相关信息:
FORMAT
标识输入记录的格式。 如果您使用 FORMAT UNLOAD、FORMAT INTERNAL 或 FORMAT SQL/DS ,则只能确定输入的格式,INTO TABLE 选项中不允许任何字段规格。
如果省略 FORMAT,则输入数据的格式由字段规格规则确定。如果指定 FORMAT DELIMITED,则输入数据的格式由分隔文件格式中描述的规则确定
UNLOAD
指定输入记录格式与 Db2 卸载格式。 ( Db2 卸载格式是REORG与UNLOAD ONLY选项的结果。)

如果INTO TABLE选项指定了每个表,则由REORG实用程序卸载的输入记录将被加载到它们被卸载的表中。 在运行REORG UNLOAD ONLY和LOAD FORMAT UNLOAD之间,请勿添加列或更改表的列定义。

LOAD FORMAT UNLOAD语句中的任何WHEN子句都会被忽略; Db2 将记录重新加载到卸载时的同一表中。 不允许在格式化卸载子句中使用何时子句,以确保输入记录被加载到正确的表中。 无法加载的输入记录将被丢弃。

如果在输入数据集的DD语句中指定了DCB RECFM参数,且自REORG UNLOAD(仅)操作以来数据集格式未修改,则记录格式必须是可变格式(RECFM=V)。

SQL/DS
指定输入记录格式与 SQL/DS 卸载格式兼容。 待加载表格中列的数据类型必须与 SQL/DS 表格中对应列的数据类型相同。

如果 SQL/DS 输入包含多个表的行,INTO TABLE选项的WHEN子句将指示哪些输入记录将被加载到哪个 Db2 表中。

SQL/DS LOAD无法加载超过 Db2 限制。

SQL/DS 数据已卸载到磁盘, DB2® Server for VSE & VM 位于一个模拟的 z/OS 类型数据集中,记录格式为VBS。 将数据传输到另一个系统并加载到 Db2 表格(例如, DB2 Server for VSE & VM。 FILEDEF必须将其定义为 z/OS 类型的数据集)。 将数据集作为标准 CMS 文件处理时, SQL/DS 记录类型字段在记录中的偏移量不正确;LOAD无法将其识别为有效的 SQL/DS 输入。

INTERNAL
指定输入记录格式为 Db2 内部格式。 Db2 内部格式是指使用“内部格式”选项运行“卸载”命令生成的格式。
注意: 更改开始FORMAT INTERNAL 是一项性能选项,可绕过所有数据有效性检查。 错误使用可能会导致严重问题,包括数据覆盖和 Db2 异常终止。 这些问题可能发生在加载处理期间,也可能发生在加载目标表后访问该表时。更改结束
当指定了“内部格式”时:
  • LOAD会忽略LOAD控制语句中的任何字段说明。
  • LOAD不进行数据转换。
限制:
  • 更改开始输入数据所来自的表的定义必须与数据所进入的表的定义完全匹配。 如果加载数据的表中的某列具有字段过程,则从中卸载数据的表中的对应列也必须具有该字段过程。更改结束
  • 输入数据必须为已解压格式。
  • 当指定了“内部格式”时,LOAD一次只能加载一张表。
  • 当指定了内部格式时,LOAD不会填充LOB或XML列。 LOAD将基础表空间置于待处理状态。
  • 内部格式不能与以下选项同时指定:
    • ASCII
    • CCSID
    • 继续
    • decfloat_roundmode
    • EBCDIC
    • FLOAT
    • 覆盖(身份)
    • 忽略字段
    • INCURSOR
    • 诺苏布斯
    • shrlevel变化
    • UNICODE
    • WHEN
DELIMITED
指定输入数据文件采用分隔格式。 当数据采用分隔格式时,输入数据集中的所有字段均为字符串或外部数值。 此外,分隔文件中每一列都由一个列分隔符与下一列隔开。

对于您指定的每种分隔符类型,您必须确保在源数据的代码页中指定了分隔符。 分隔符可以指定为字符或十六进制常量。 例如,要指定“#”作为分隔符,您可以指定 COLDEL '#' 或 COLDEL X'23'。 如果实用程序语句的编码字符类型与输入文件不同,例如实用程序语句使用 EBCDIC 编码,而输入数据使用 Unicode 编码,则应在实用程序语句中指定分隔符字符为十六进制常量,否则结果可能无法预测。

您不能为一种以上的分隔符(COLDEL、CHARDEL和DECPT)指定相同的字符。 如果输入数据包含外部日期、时间和时间戳格式,则分隔符不能使用与分隔符相同的字符。 有关分隔符限制的更多信息,请参阅加载分隔文件

格式分隔的Unicode输入数据必须是 UTF-8 ,CCSID 1208。

如果您指定了“分隔格式”选项,则不能使用以下选项:

  • 继续
  • INCURSOR
  • 多个INTO TABLE语句
  • WHEN
  • 更改开始CCSID在字段说明中更改结束

此外,LOAD会忽略LOAD实用程序控制语句中指定的任何POSITION语句。

有关使用分隔输出和分隔符限制的更多信息,请参阅加载分隔文件。 有关分隔文件的更多信息,请参阅分隔文件格式

COLDEL coldel
指定输入文件中使用的列分隔符。 默认值为逗号 ( )。对于大多数ASCII和 UTF-8 数据,该值为 X'2C' ,对于大多数EBCDIC数据,该值为 X'6B'
CHARDEL chardel
指定输入文件中使用的字符串分隔符。 默认值为双引号 (“ )。对于大多数ASCII和 UTF-8 数据,该值为 X'22' ,对于大多数EBCDIC数据,该值为 X'7F'

要限定包含字符串分隔符的字符串,请在字符串中使用字符串分隔符。 LOAD将任何一对在封闭字符分隔符之间的字符分隔符解释为一个字符。 例如,短语 “what a ““nice warm”” day” 会被解释为 what a “nice warm” day。 LOAD实用程序仅对CHAR、VARCHAR和CLOB字段识别这些字符分隔符对。

字符串分隔符仅在字符串包含 CHARDEL 字符时才需要。 但是,您可以在其他字符串前后添加字符串分隔符。 UNLOAD实用程序以分隔格式卸载的数据包括所有字符串周围的字符串分隔符。

DECPTdecpt
指定输入文件中使用的十进制小数点字符。 默认值为句点 (. )。对于大多数ASCII和 UTF-8 数据,该值为 X'2E';对于大多数EBCDIC数据,该值为 X'4B'
注意 :如果您使用应用程序默认加载模块(默认值为 DSNHDECP,或者用户指定的应用程序默认加载模块),请确保指定的十进制值与输入数据中使用的十进制值相同。 您必须指定小数值,以便与输入数据中的小数值匹配。
有范围
指示是否以跨区记录格式从VBS数据集加载记录。
YES
表示LOAD实用程序将从跨记录中加载数据。

输入数据集必须采用跨记录格式,所有LOB和XML数据必须位于记录末尾。

您必须在记录末尾提供包含所有LOB和XML字段的字段规范列表。 对于LOB和XML列,请指定POSITION(*)。

如果指定了格式为“SPANNED YES”,则不要在“WHEN”子句的字段选择标准中引用LOB或XML数据。

您不能将“INCURSOR”选项与“SPANNED YES”一起指定。

如果您指定了“格式为SPANNED YES”,LOAD实用程序将不会使用并行处理。

NO
表示LOAD实用程序不以跨记录格式加载数据。
FLOAT
指定LOAD应使用指定的浮点数字格式。
(S390)
指定LOAD要求浮点数以 System/390® 十六进制浮点(HFP)格式提供。 ( S390 )Db2 存储浮点数的格式。 如果您没有明确指定 FLOAT 关键字,则该值也是默认值
(IEEE)
指定LOAD应使用IEEE二进制浮点(BFP)格式提供浮点数。

当指定为FLOAT(IEEE)时, Db2 在数据加载到表格时,将BFP数据转换为HFP格式 Db2 表中时, 如果 Db2 从BFP转换为HFP时发生转换错误, Db2 会将记录放入废弃文件。

FLOAT(IEEE)与任何FORMAT关键字的规范互斥。 如果您同时指定了 FLOAT(IEEE) 和 FORMAT, Db2 会发送邮件至 DSNU070I。

BFP格式有时也被称为IEEE浮点格式。

EBCDIC
指定输入数据文件为EBCDIC。 缺省值是 EBCDIC。
ASCII
指定输入数据文件为ASCII格式。 数字、日期、时间和时间戳的内部格式不受ASCII选项的影响。
UNICODE
指定输入数据文件为Unicode格式。 UNICODE选项不影响数字的内部格式。
CCSID
为输入文件指定最多三个编码字符集标识符(CCSID)。 第一个值指定输入文件中SBCS数据的CCSID,第二个值指定混合DBCS数据的CCSID,第三个值指定DBCS数据的CCSID。 如果这些值中的任何一个被指定为0或省略,则输入文件中相应数据类型的CCSID将被视为与安装默认CCSID相同。 如果输入数据是EBCDIC,则省略的CCSID被认为是安装时指定的EBCDIC CCSID;如果输入数据是ASCII,则省略的CCSID被认为是安装时指定的ASCII CCSID。 如果输入数据文件的CCSID与正在加载的表的CCSID不匹配,则输入数据在加载前会转换为表的CCSID。

integer 是任何有效的CCSID规范。

如果输入数据是Unicode,则默认CCSID值是系统安装时指定的Unicode CCSID。

NOSUBS
指定LOAD不接受字符串中的替换字符。

当字符串从ASCII转换为EBCDIC或从一种CCSID转换为另一种CCSID时,在字符串中插入一个替换字符。 例如,当源CCSID(代码页)中存在的字符(有时称为代码点)在目标CCSID(代码页)中不存在时,就会发生这种替换。

当您指定NOSUBS选项,且LOAD实用程序确定转换后字符串中存在替换字符时,它将执行以下操作之一:

  • 如果丢弃处理处于活动状态Db2 发送邮件至 DSNU310I ,并将记录放入废弃文件。
  • 如果未启用丢弃处理Db2 发送邮件至 DSNU334I ,程序异常终止。
ENFORCE
指定LOAD是否强制执行检查约束和参照约束,但不强制执行信息性参照约束。
约束
表示要强制执行约束。 如果LOAD检测到违规,它会删除违规行并发出消息进行标识。 如果您指定了此选项,并且存在参照约束,则必须定义输入和输出数据集的排序。

更改开始您不能指定“强制约束”和“SHRLEVEL REFERENCE”。更改结束

NO
表示不强制执行约束。 如果为表定义了至少一个参照约束或检查约束,则此选项会将目标表空间置于“检查中”状态。
更改开始NOCHECKPEND更改结束
更改开始指定如果为表定义了至少一个参照约束或检查约束,则LOAD不会将目标表空间设置为CHECK-pending状态。 仅当指定或由LOAD实用程序强制执行“不执行”时,此选项才适用。 NOCHECKPEND 规范不会删除 LOAD 之前设置的任何 CHECK-pending 状态。更改结束
ERRDDN ddname
指定错误处理期间正在使用的工作数据集的DD语句。 处理过程中遇到的错误信息存储在此数据集中。 如果您请求丢弃处理,则需要SYSERR数据集。

ddname 是DD名称。

默认值为 SYSERR

ERRDDN关键字指定DD名称或上一个TEMPLATE控制语句中的TEMPLATE名称。 如果实用程序处理检测到指定的名称在当前作业步骤中既是DD名称又是模板名称,则实用程序将使用DD名称。 有关模板规格的更多信息,请参阅模板

MAPDDN ddname
指定在错误处理期间要使用的工程数据集的DD语句。 工作数据集用于将表行的标识符与导致错误的输入记录相关联。 如果指定了“强制约束”,并且表之间存在参照关系,或者当加载一个或多个包含唯一索引或扩展索引的表时要求进行丢弃处理,则需要SYSMAP数据集。

ddname 是DD名称。

默认值为 SYSMAP

MAPDDN关键字指定DD名称或上一个TEMPLATE控制语句中的TEMPLATE名称。 如果实用程序处理检测到指定的名称在当前作业步骤中既是DD名称又是模板名称,则实用程序将使用DD名称。 有关模板规格的更多信息,请参阅模板

DISCARDDN ddname
指定丢弃数据集的DD名称或模板名称,该数据集用于保存未加载的记录副本(例如,如果这些记录包含转换错误)。 丢弃的数据集还包含已加载但随后被删除的记录副本(由于唯一索引错误、引用或检查约束冲突或索引评估错误)。 标记输入记录,以便在RELOAD、INDEXVAL和ENFORCE阶段丢弃。 然而,直到“丢弃”阶段,标记的记录才会从输入数据集复制到丢弃数据集,丢弃数据集才会被写入。 丢弃的数据集必须是一个可由BSAM写入的顺序数据集,其记录格式、记录长度和块大小与输入数据集相同。

ddname 是DD名称。

默认值为 SYSDISC

如果省略了“丢弃”选项,则只有在JCL输入中包含SYSDISC DD语句时,实用程序才会保存丢弃的记录。

如果您使用 BatchPipes® 文件作为LOAD的输入,并使用INDDN名称作为TEMPLATE SUBSYS,则不支持DISCARDDN关键字。

DISCARDS 整数
指定要写入废弃数据集的源记录的最大数量。 整数范围是0-2147483647。 如果达到最大丢弃量,LOAD将异常终止,丢弃的数据集为空,您将无法看到哪些记录被丢弃。 您可以使用更大的限制值重新启动作业,也可以终止该实用程序。

DISCARDS 0 指定您不想设置最大值。 整个输入数据集可以被丢弃。

默认值为0

LOAD任务并行性更改开始如果指定了丢弃最大值,则该限制分别适用于在目标系统上运行的每个LOAD任务。更改结束
SORTDEVT 设备类型
指定外部排序程序动态分配的临时数据集的设备类型。 您可以指定排序程序中 SORT 或 OPTION 选项的 DYNALLOC 参数可接受的任何磁盘设备类型。 排序程序不支持磁带设备。

如果省略了 SORTDEVT,而排序又是必需的,则必须提供排序应用程序所需的 DD 语句,以用于临时数据集。

模板规格不会动态分配排序工作数据集。 SORTDEVT关键字控制这些数据集的动态分配。

SORTNUM 整数
指定排序应用程序动态分配的 临时数据集的数量。

integer 是临时数据集的数量,范围从2到255。

如果省略了 SORTDEVT,则 SORTNUM 将被忽略。 如果使用 SORTDEVT 并省略 SORTNUM,则排序程序不会传递任何值。 在这种情况下,排序程序使用自己的默认值。

每种分类至少需要两个分类工作数据集。 SORTNUM值适用于实用程序中的每个排序调用。 例如,如果指定了三个索引,即 SORTKEYS,则没有限制并行度的约束,而 SORTNUM 指定为 8,则一个作业总共分配 24 个排序工作数据集。

每个排序工作数据集都会占用线上和线下的虚拟存储空间,因此,如果您为 SORTNUM 指定的值过高,该实用程序可能会因虚拟存储限制而降低并行度,甚至可能降至 1,即无并行度。

重要: 更改开始如果IGNSORTN子系统参数设置为YES,则SORTNUM关键字将被忽略。更改结束
CONTINUEIF
表示您希望将每个输入记录视为更大记录的一部分。 在CONTINUEIF之后,用以下形式之一编写条件:
(start:end) = X'byte-string'
(start:end) = 'character-string'

如果任何记录中的条件为真,则在加载之前,下一个记录将与它连接。 您可以将任意数量的记录合并为一个更大的记录,最大容量为32767字节。

字符串常量应在LOAD实用程序控制语句中指定为与输入数据记录匹配的字符集。 如果您的数据是EBCDIC格式,请在LOAD控制语句中指定EBCDIC常量;如果您的数据是UNICODE格式,请指定UNICODE常量。 您也可以使用十六进制形式编写 CONTINUEIF 条件。 例如,使用 (1:1)=X'31' 而不是 (1:1)='1'
(开始:结束
指定输入记录中的列号;记录的第一列为第1列。 这两个数字表示输入记录中连续字段的起始列和结束列。

其他字段位置说明(例如,何时、位置或 NULLIF)指的是最终组装的负载记录中的字段位置,而不是输入记录中的字段位置。

续行字段从输入记录中删除,且不属于最终加载记录的一部分。

如果省略了 :endDb2 则假定续写字段的长度与字节串或字符串的长度相同。 如果使用 :end ,且产生的续行字段长度与字节串或字符串长度不一致,则较短的字符串会被填充。 字符串用空格填充。 十六进制字符串用零填充。

X'字节字符串 '
指定一个十六进制字符串。 续传字段中的字节串值表明下一个输入记录是当前加载记录的续传。 使用此字节串值的记录将被连接,直到继续字段中的值发生变化。 例如,以下CONTINUEIF规范表示,对于第72列中值为X'FF'的任何输入记录,LOAD都会将该记录与下一个输入记录连接起来。
CONTINUEIF (72) = X'FF'
字符串
指定一个字符串,其效果与 X'字节字符串 '相同。 例如,以下CONTINUEIF规范表示,对于第99和100列中包含字符串CC的任何输入记录,LOAD都会将该记录与下一个输入记录连接起来。
CONTINUEIF (99:100) = 'CC'
IGNORE
指定LOAD实用程序忽略因指定原因而拒绝的记录。 如果指定丢弃,则不会加载或写入被忽略的行到丢弃数据集。 如果未指定丢弃,则忽略的记录不会导致LOAD实用程序终止。

使用实用程序输出中的记录计数信息来确定被忽略的记录数。

WHEN
指定忽略不符合“WHEN”子句的记录。
更改开始部分更改结束
更改开始指定忽略不满足任何分区加载条件的记录。更改结束
更改开始CONV更改结束
更改开始指定忽略导致转换错误的记录。更改结束
更改开始VALPROC更改结束
更改开始指定忽略未通过验证程序的记录。更改结束
更改开始错误更改结束
更改开始指定忽略身份列值超出范围的记录。更改结束
更改开始DUPKEY更改结束
更改开始指定忽略导致重复键错误的记录。更改结束

使用实用程序输出中的记录计数信息来确定被忽略的记录数。

DECFLOAT_ROUNDMODE
指定在操作 DECFLOAT 时使用的舍入模式。 支持以下舍入模式:
ROUND_CEILING
向正无穷舍入。 如果被舍弃的数字都是0或符号为负数,则将其删除。 否则,结果系数应增加 1(向上舍入)。
ROUND_DOWN
向 0 的方向舍入(截断)。 将忽略被废弃的位。
ROUND_FLOOR
向负无穷舍入。 如果被丢弃的数字都是0或正数,则将其删除。 否则,如果符号为负号,那么结果系数应增加 1(向上舍入)。
ROUND_HALF_DOWN
取整到最接近的整数。 如果等距,则向下取整。 如果舍弃的数字大于 0.5 ,结果系数应增加1(向上取整)。 如果被丢弃的数字等于或小于 0.5 ,则忽略不计。
ROUND_HALF_EVEN
取整到最接近的整数。 如果等距,则取圆数,使最后一位数字为偶数。 如果舍弃的数字大于0.05,结果系数应增加1(向上取整)。 如果丢弃的数字小于 0.5 ,则忽略不计。 如果结果系数为0.05,且最右边一位数字为偶数,则结果系数不变。 如果结果系数为0.05,且最右边一位为奇数,则结果系数应增加1(向上取整)。
ROUND_HALF_UP
四舍五入取整。 如果等距,则四舍五入。 如果舍弃的数字大于或等于 0.5 ,结果系数应增加1(向上取整)。 否则将忽略废弃的数字。
ROUND_UP
向远离0的方向舍入。 如果所有被舍弃的数字都是0,则结果不变。 否则,结果系数应增加 1(向上舍入)。

如果您没有指定 DECFLOAT_ROUNDMODE,LOAD 语句将使用应用程序默认加载模块中的 DFPDEFDM 值作为默认值。 应用程序默认加载模块是DSNHDECP(默认值)或用户指定的应用程序默认加载模块。

OVERRIDE
允许将未加载的数据重新加载到指定的生成列类型中。
系统时间
允许将未加载的数据重新加载到生成的始终为行的开始或结束列中。 行首和行尾列用于定义系统周期,但指定 SYSTEMPERIOD 关键字时,周期不必存在。

如果您在LOAD语句中指定OVERRIDE(SYSTEMPERIOD)并包含输入字段说明,则必须指定可用于定义系统周期的行首列和行尾列。 在列的规格中,不允许使用 NULLIF 和 DEFAULTIF 选项。

IDENTITY
允许将未加载的数据重新加载到生成的“始终”标识列中。

如果您在LOAD语句中指定OVERRIDE(IDENTITY)并包含输入字段说明,则必须指定身份列。 在列的说明中,不允许使用 NULLIF 和 DEFAULTIF 选项。

当您想使用 INTO TABLE PART 子句运行 LOAD 并且生成的标识列是分区索引的一部分时,请指定 OVERRIDE(IDENTITY)。 (生成的身份列可以定义为“始终生成”或“默认生成”。)

有关 LOAD 如何更新标识列的 MAXASSIGNEDVAL 的信息,请参阅运行 LOAD 的影响

TRANSID
允许将未加载的数据重新加载到定义为事务开始ID列的生成始终列中。
非确定性
允许将未加载的数据重新加载到由非确定性表达式定义的生成的ALWAYS列中。
更改开始换行更改结束
更改开始允许将数据加载到定义为 "始终生成 "的行更改时间戳列中。

当您正在加载一个包含之前已卸载数据的表格,且希望保留数据中的时间戳时,请指定OVERRIDE(ROWCHANGE)。

限制 :您不能将行更改与以下选项一起指定:
  • NULLIF
  • 默认值
  • 内部格式
更改结束
更改开始DRAIN_WAIT 整数更改结束
更改开始指定实用程序耗尽表空间或索引时的等待秒数。 指定的时间是指需要重组的对象的总时间。 此值优先于IRLMRWT和UTIMOUT子系统参数指定的值。 整数的有效取值范围为0到1800。 如果省略关键字或指定值为 0,实用程序将使用 IRLMRWT 子系统参数的值。更改结束
更改开始返回整数更改结束
更改开始指定 LOAD 尝试排水的最大重试次数。 整数取值范围为0-255。

默认值为UTIMOUT子系统参数的值。

更改结束
更改开始RETRY_DELAY 整数更改结束
更改开始指定重试之间的最短持续时间(秒)。 整数是1-1800之间的数值。
如果您没有指定 RETRY_DELAY,LOAD 将使用以下两个值中的较小值:
  • DRAIN_WAIT value × RETRY value
  • DRAIN_WAIT value × 10
更改结束
更改开始开关时间更改结束
更改开始指定 SWITCH(切换)阶段所有泄放开始的时间。 SWITCHTIME的最终结果和所有时间戳计算都在TIMESTAMP(6)中。 此关键词需要SHRLEVEL参考。 如果指定了LOAD,则LOAD位于SWITCH阶段的开始,在满足指定的SWITCHTIME之前,LOAD不会尝试停止应用程序访问。
未指定“切换”阶段开始排水的时间。 此选项为默认行为。
timestamp
指定SWITCH阶段中的排水开始时间。 LOAD运行时,这个时间点一定还没有发生。
标记的持续时间表达式
计算SWITCH阶段排水开始的时间。 计算基于当前时间戳或当前日期。 您可以添加或减去一个或多个常量值来指定开关时间。 在运行LOAD时,此切换时间不得已经发生。 当前时间戳和当前日期在LOAD语句首次处理时评估一次。 如果指定了对象列表,则相同的值将应用于列表中的所有对象。
CURRENT_DATE
指定截止日期根据当前日期计算。
CURRENT_TIMESTAMP
指定截止日期根据当前时间戳计算。
更改开始带时区更改结束
指定将当前时间戳与时区列进行比较。 特殊记录“当前时间戳”的时间戳精度应与列的时间戳精度相同。 否则,将使用默认的时间戳精度。 当前时间戳的时区是特殊寄存器当前时区的值。 通过比较时间戳中的协调世界时部分进行比较。
constant
表示时间单位,后面跟七个持续时间关键词之一:年、月、日、小时、分钟、秒或微秒。 这些单词的单数形式也可以接受:年、月、日、时、分、秒、微秒。
更改结束
IMPLICIT_TZ
当加载的时间戳值不包含时区,且目标列的数据类型为带时区的TIMESTAMP时,指定要使用的隐式时区。
时区字符串
指定隐式时区值。 时区是当地时间与UTC之间的时差(以小时和分钟为单位)。 小时部分的刻度范围为-12至14,分钟部分的刻度范围为00至59。 时区以±时:分的形式表示,取值范围为-12:59至+14:00。

如果您没有指定IMPLICIT_TZ选项,LOAD将使用IMPLICIT_TIMEZONE DECP的值。 有关此 DECP 值的更多信息,请参阅隐含时区字段(IMPLICIT_TIMEZONE DECP 值 )。

更改开始更新最大分配值更改结束
更改开始指定 LOAD 是否更新 SYSIBM.SYSSEQUENCES 中标识列的 MAXASSIGNEDVAL 列。
指定当标识列的加载值大于或小于MAXASSIGNEDVAL列的当前值时,LOAD更新MAXASSIGNEDVAL列,具体取决于正在使用的升序或降序排序。 缺省值是 YES。
指定LOAD不会更新MAXASSIGNEDVAL列,无论加载的身份列的值如何。

有关更新 MAXASSIGNEDVAL 的限制和要求,请参阅运行 LOAD 的影响

更改结束
更改开始德菲诺更改结束
更改开始指定 LOAD 是否要定义所有带有 DEFINE NO 属性的目标辅助对象,无论数据是否要加载到这些对象中。

仅当同时指定REPLACE和SHRLEVEL NONE时,DEFINEAUX才适用。

指定LOAD不采取任何特殊操作来定义目标辅助对象。 LOAD将数据插入这些对象时,会根据需要定义这些对象。 默认行为是“否”。
指定LOAD在实用程序执行开始时定义所有目标LOB和XML对象及其索引。 无论数据是否在实用程序执行期间加载到这些对象中,底层数据集都会为这些对象进行物理分配。

如果对按增长分区(PBG)表空间执行了LOAD DEFINEAUX YES,并且实用程序加载了足够的数据以导致添加新的分区,则新创建的LOB表空间和辅助索引也将由LOAD定义,无论这些辅助对象是否具有DEFINE NO属性。

更改结束
更改开始FORCE更改结束
更改开始指定实用程序耗尽表空间时要采取的操作。
未执行任何操作。 LOAD等待索赔者在处理流失期间提交索赔。 如果排水失败,LOAD将超时或重试。 默认行为是“无”。
读者
当LOAD在最后一次排水重试时请求DRAIN ALL时,读取请求将被取消。
全部
当LOAD在最后一次排水重试时请求DRAIN ALL或DRAIN WRITERS时,读写请求均被取消。

当LOAD FORCE取消线程时,它会执行一个内部取消操作,该操作与CANCEL THREAD命令执行的取消操作类似。

如果您指定了SHRLEVEL CHANGE和FORCE,FORCE将被忽略。 此选项不适用于负载变化操作。

如果您在FORCE READERS或FORCE ALL中指定SHRLEVEL NONE,则在实用程序启动时进行的唯一排水处理期间,阻塞索赔将被取消。 在这种情况下,不会发生排水重试处理。

更改结束
更改开始保持空页更改结束
更改开始指定当逻辑分区中的键被删除时,LOAD 实用程序是否保留非分区辅助索引 (NPSI) 的空索引页。

此选项仅适用于LOAD SHRLEVEL NONE PART REPLACE实用程序执行,且不会影响任何分区索引。

指定LOAD实用程序保留非分区二级索引的空索引叶页。 此选项有助于提高LOAD实用程序的性能,并允许LOAD或更高版本的应用程序插入新的索引键,以重复使用保留的空索引叶页。

缺省值是 YES。

指定LOAD实用程序删除从被替换的逻辑分区中删除密钥时创建的空NPSI叶页。 此选项可在非生产性服务间隔(NPSI)上实现空间回收,但会增加LOAD实用程序执行的性能成本。
更改结束

INTO-TABLE-规格

INTO-TABLE-spec控制语句及其多个选项定义了实用程序执行的功能。 只需调用一次LOAD实用程序,即可为每个表格空间加载多个表格或分区。 每个要加载的表至少需要一个 INTO TABLE 语句。 每个INTO TABLE语句:

  • 标识要加载的表格
  • 描述输入记录中的字段
  • 定义输入数据集的格式

INTO TABLE语句指定的所有表必须属于同一个表空间。

如果数据已经为UNLOAD或 SQL/DS 格式,并且在LOAD语句中使用FORMAT UNLOAD或FORMAT SQL/DS ,则不允许指定字段。

从VBS数据集加载XML或LOB列时,LOB和XML值需要按照字段规范列表的指定位于记录末尾。

建议 更改开始字段规范应该是每个 INTO TABLE 子句中的最后一个规范。更改结束
INTO-TABLE-规格
阅读语法图跳过可视化语法图 INTO TABLE table-name IGNOREFIELDSNOIGNOREFIELDSYESPART整数PREFORMATINTO-TABLE-简历-规格INDDNSYSRECINDDN数据定义名称INDDN(, 数据定义名称)DISCARDDN数据定义名称INCURSOR光标名称NUMRECS整数WHENSQL/DS=' table-name'领域选择标准(,字段规范)
INTO-TABLE-简历-规格
阅读语法图跳过可视化语法图RESUMENO1REPLACEREUSE规格RESUMEYES规格KEEPDICTIONARY
领域选择标准
阅读语法图跳过可视化语法图字段名( start: 结束) = X' 字节串'' 字符串'G' 图形字符串'N' 图形字符串'
字段规范
阅读语法图跳过可视化语法图字段名称规格CHARBIT( 长度)规格CCSID 1208规格MIXED规格BLOBFPRESERVE WHITESPACEBINARYXMLCLOBFMIXEDPRESERVE WHITESPACECCSID 1208DBCLOBFPRESERVE WHITESPACECCSID 1200VARCHARBITCCSID 1208MIXEDBLOBFPRESERVE WHITESPACEBINARYXMLCLOBFMIXEDPRESERVE WHITESPACECCSID 1208DBCLOBFPRESERVE WHITESPACECCSID 1200规格GRAPHICEXTERNAL( 长度)规格CCSID 1200VARGRAPHIC规格CCSID 1200SMALLINTINTEGEREXTERNAL( 长度)BIGINTBINARY( 长度)规格VARBINARYBINARY VARYING规格十进制规格FLOATEXTERNAL( 长度)DATEDATE_PEXTERNAL(长度日期格式)TIMEEXTERNAL(长度时间格式)TIMESTAMPEXTERNAL(长度时间戳格式)TIMESTAMP-WITH-TIME-ZONEEXTERNAL( 长度)ROWIDBLOBCLOBMIXEDCCSID 1208DBCLOBCCSID 1200DECFLOAT(34)(16)EXTERNAL( 长度)XMLPRESERVE WHITESPACEBINARYXMLNULLIF领域选择标准DEFAULTIF默认条件
字段名称规格
阅读语法图跳过可视化语法图 字段名 POSITION( start: 结束)CONSTANTIF领域选择标准CONSTANT(' 字符串'X' 十六进制字符串'整数CURRENT DATECURRENT TIMECURRENT TIMESTAMPNULL)
规格
阅读语法图跳过可视化语法图STRIPBOTH TRAILINGLEADING' 字符串'2X' 字符串'TRUNCATE
十进制规格
阅读语法图跳过可视化语法图 DECIMAL PACKEDZONEDEXTERNAL( 长度,0, 扩展)
默认条件
阅读语法图跳过可视化语法图CONV_ERROR字段名( start: 结束)=<>X' 字节串'' 字符串'G' 图形字符串'N' 图形字符串'
注意:
  • 1 在INTO TABLE子句中为RESUME或REPLACE指定的值将覆盖LOAD RESUME的默认值。
  • 2 如果您指定了 GRAPHIC、BINARY、VARBINARY 或 VARGRAPHIC,则不能指定“strip-char”;只能指定 X'strip-char'。

INTO TABLE选项说明

表名
指定要加载的表的名称。 目录中必须描述该表。

该表不能是目录表或系统维护的物化查询表。

如果表名没有模式名限定,则使用实用程序作业步骤调用者的授权 ID 作为表名的模式限定符。 如果表格名称中包含空格,请用引号将其括起来。

数据集中的每个LOAD记录的数据都会加载到指定的表中,除非:

  • 使用了WHEN子句,且数据与字段选择标准不匹配。
  • FORMAT UNLOAD选项用于LOAD语句,数据来自INTO TABLE语句中未指定的表。
  • 指定了某个分区,而数据不属于该分区。
  • 数据转换时出现错误。
  • 任何非数据转换产生的错误。
IGNOREFIELDS
指示LOAD是否跳过输入数据集中与目标表中的列不对应的字段。 与表列不匹配的字段示例包括由REORG实用程序生成的 DSN_NULL_IND_nnnnn、DSN_ROWID、DSN_IDENTITY和DSN_RCTIMESTAMP字段。
NO
指定加载过程不得跳过任何字段。
YES
指定LOAD跳过输入数据集中与目标表中的列不对应的字段。

如果每个输入记录都包含一个可变长度的字段,后面是一些可变长度的数据,而您不想加载这些数据,但又想加载后面的某些数据,那么指定 YES 可能会很有用。 由于字段长度可变,您无法使用POSITION关键字跳过不想加载的可变长度数据。 通过指定IGNOREFIELDS,您可以为不想加载的可变长度数据指定字段规格;通过指定一个非表列名称的名称,LOAD将跳过该字段而不加载它。

请谨慎使用此选项,因为如果您打算加载一列,但拼错了列名,也会导致字段被跳过。

编号
指示指定表或表分区的输入记录数。
整数
一个正整数,用于估算将要加载到指定表格中的完整输入记录的数量。 当使用 CONTINUEIF 时,指定的编号是指完全组装的输入记录。

使用 NUMRECS 关键字表示多表空间,以指示将加载到每个表或表分区的输入记录数。

指定记录数可以改善排序工作数据集的大小,当索引并行构建时,该实用程序需要这些数据集。 如果LOAD实用程序低估了排序工作数据集的大小,则LOAD实用程序的执行可能会失败。

当输入数据集位于磁带中或仅加载部分输入记录时,也可以使用 NUMRECS 关键字。

如果在表空间级别为 SORTKEYS 关键字指定了整数值,则不能在同一 LOAD 语句中指定 NUMRECS 关键字。

如果多个表或分区加载在同一 LOAD 语句中,则必须为所有表或分区指定 NUMRECS 关键字,或者为所有表或分区指定 NUMRECS 关键字,或者不为任何表或分区指定 NUMRECS 关键字。

PART 整数
指定数据将被加载到分区表空间的分区中。 此选项仅适用于分区表空间,不包括按增长分区表空间。

integer 是用于记录加载的物理分区编号。 如果已请求分区并行,则同一分区编号不能被指定多次。 任何超出指定分区范围的数据都不会被加载。 最大值为4096。

加载到零件中,不允许整数 ,如果:

  • 标识列是分区索引的一部分,除非为标识列指定了OVERRIDE(IDENTITY) GENERATED ALWAYS
  • 行ID是分区索引的一部分
  • 表格空间按增长进行分区

对于非分区二级索引,LOAD PART:

  • 不设置页面,设置重建待定(PSRBD)状态
  • 插入密钥时,不考虑 PCTFREE 或 FREEPAGE 属性
相关信息:
PREFORMAT
指定剩余页面按照分区中分配率最高的RBA及其对应的分区索引空间进行预格式化。 预格式化在数据加载和索引建立之后进行。
INDEXDEFER
指定索引构建是在加载的构建阶段完成,还是推迟到手动运行重建索引时完成。 延迟索引构建是提高LOAD性能的一种方法,特别是对于带有PART的LOAD。 如果在LOAD期间没有建立索引,LOAD会将受影响的索引置于REBUILD-pending状态。
指定在LOAD的BUILD阶段建立索引。
全部
更改开始指定在 LOAD 工具的 BUILD 阶段不建立索引。 索引构建将推迟到手动运行“重建索引”时进行。 如果指定了 SHRLEVEL CHANGE,则 ALL 无效。更改结束
NPI
更改开始指定不在 LOAD 工具的 "构建 "阶段构建非分区索引。 非分区索引构建将推迟到手动运行“重建索引”时进行。 如果指定了 SHRLEVEL CHANGE,则 NPI 无效。更改结束
非唯一
指定仅延迟非唯一索引的构建。 仅当同时指定了ALL或NPI时,NONUNIQUE才有效。 如果未指定NONUNIQUE,则推迟构建唯一和非唯一索引。 如果正在加载的表上定义了唯一索引,除非数据确实唯一,否则请指定为非唯一。 重建索引不会为唯一索引解决重复键问题。

当指定INDEXDEFER ALL或INDEXDEFER NPI时:

  • 如果同时指定了“强制约束”,则不会延迟索引外键的构建。
  • 如果还指定了 RESUME,则不会推迟构建使用 DEFINE NO 创建但尚未定义的索引。 仅当指定了 REPLACE 时,才会推迟构建未定义的索引。

任何LOAD REPLACE SHRLEVEL REFERENCE PART执行都会导致INDEXDEFER NPI的默认值,在LOAD成功完成后,受影响的部件级非分区索引将处于RBDP状态。 如果指定了NONUNIQUE,则忽略它。

RESUME
指定记录是加载到空分区还是非空分区。 对于非分段表空间,已标记为删除的行或已删除表的行不会重复使用空间。 如果在表空间级别指定了 RESUME 选项,则不允许在 PART 子句中使用 RESUME 选项。

如果您希望恢复选项应用于整个表格空间,请使用加载恢复选项。 如果您希望恢复选项应用于特定分区,请使用整数PART RESUME指定。

将记录加载到空分区中。 如果分区不为空,且您没有使用 REPLACE,则会发出一条消息,实用程序作业步骤将终止,作业步骤条件代码为 8。

对于包含已删除行或已删除表行的非分段表空间,使用REPLACE关键字可以提高效率。

YES
将记录加载到非空分区中。 如果分区为空,则会发出警告消息,但分区已加载。

更改开始如果 COPYDDN 或 RECOVERYDDN 与 RESUME YES 一起指定,则将在处理 LOAD 语句时为指定分区创建内联映像副本。 图像副本是在表空间级别创建的,是每个分区(由 INTO TABLE PART 指定)的完整图像副本。 如果在表空间级别指定了 COPYDDN 或 RECOVERYDDN,则不能在 INTO TABLE PART 级别指定。更改结束

REPLACE
表示您只想替换 PART 选项所引用的分区内容,而不是整个表空间。

如果指定REPLACE选项来替换整个表空间,则不能同时指定INTO TABLE的 PART整数REPLACE选项

但是,您可以将PART integer REPLACE与LOAD RESUME YES一起使用。

REUSE
当与REPLACE选项一起使用时,指定LOAD应在逻辑上重置并重新使用 Db2 -管理数据集,无需删除和重新定义。 如果您没有指定REUSE, Db2 删除并重新定义 Db2 -管理数据集,以进行重置。

如果在分区规格中指定了REUSE和REPLACE(而不是在表空间级别指定LOAD),则只有指定的分区在逻辑上被重置。 如果为表空间指定REUSE,为分区指定REPLACE,则被替换部分的数据集在逻辑上会被重置。

KEEPDICTIONARY
指定LOAD实用程序不创建新字典。 LOAD保留当前字典,并将其用于压缩输入数据。 此选项可省去建立新词典的成本。

更改开始只有存在字典且正在加载的分区已定义压缩时,该关键字才有效。更改结束

更改开始如果定义了压缩分区,但不存在字典,则会创建一个字典并发出警告信息。更改结束

INDDN ddname
指定分区的输入数据集或数据集

ddname 是作业步骤中DD语句的名称,或者实用程序输入流中模板的名称。 默认值为 SYSREC

更改开始如果指定了多个 ddname 值,这些数据集将动态连接起来,作为 LOAD 的输入。 您最多可以指定1000个 ddname 值。 不能多次从工作步骤中指定相同的 DD 语句。更改结束

输入数据集的记录格式必须是固定长度或可变长度。 数据集必须是一个顺序数据集,可通过基本顺序访问方法(BSAM)读取。

当使用文件引用变量加载LOB数据时,输入数据集应包括包含LOB列值的文件名称。 每个文件可以是顺序文件、PDS成员、PDSE成员或单独的HFS文件。

如果在某个 INTO TABLE PART 子句中指定了 INDDN,则必须在 LOAD 语句中的所有其他 INTO TABLE PART 子句中指定 INDDN。

在分区级别提供输入数据集(通过指定多个INTO TABLE PART INDDN子句)可实现LOAD分区并行,从而显著提升性能。 当表空间上存在一个或多个非分区二级索引时,建议使用分区并行性在一个作业中加载所有分区,而不是同时运行多个单独的作业。

字段规格分别适用于每个输入文件。 因此,如果使用多个 INTO TABLE PART INDDN 子句,则每个子句都需要字段说明。

DISCARDDN ddname
指定分区丢弃数据集的DD语句。 丢弃数据集保存未加载记录的副本(例如,如果它们包含转换错误)。 丢弃的数据集还包含已加载但随后被删除的记录副本(由于唯一索引错误、引用或检查约束冲突)。

更改开始如果在 LOAD 语句中指定了 DISCARDS n ,并且启用了 LOAD 分区并行化,建议在 INTO TABLE PART 子句中指定 DISCARDDN。 请参阅加载分区更改结束

标记输入记录,以便在RELOAD、INDEXVAL和ENFORCE阶段丢弃。 然而,在DISCARD阶段,程序才会将标记的记录从输入数据集复制到丢弃数据集,从而写入丢弃数据集。

丢弃数据集必须是一个顺序数据集,并且必须能够被BSAM写入,其记录格式、记录长度和块大小与输入数据集相同。

ddname 是丢弃数据集的名称。 DISCARDDN可以是模板名称。

如果省略了“丢弃”选项,LOAD不会保存被丢弃的记录。

INCURSOR 光标名称
指定输入数据集的光标。 在LOAD实用程序使用光标之前,您必须先声明光标。 使用EXEC SQL实用程序控制语句定义光标。 您不能将数据加载到定义了游标的同一表格中。

指定的光标可用作 Db2 家族交叉加载器功能的一部分,该功能允许您从任何符合DRDA标准的远程服务器加载数据。 有关使用交叉加载器功能的更多信息,请参阅使用交叉加载器功能加载数据

cursor-name 是光标名称。 LOAD实用程序指定的光标名称不能超过八个字符。

您不能将INCURSOR选项与以下选项同时使用:

  • shrlevel变化
  • 诺苏布斯
  • 格式化 卸载
  • 格式 SQL/DS
  • 继续
  • WHEN
  • 是的

此外,您不能使用INCURSOR选项指定字段规格。

WHEN
指示要加载输入数据集中的哪些记录。 如果没有指定“WHEN”子句(且在“LOAD”语句中没有使用“FORMAT UNLOAD”),则会将输入数据集中的所有记录加载到指定的表或分区中。 (超出指定分区范围的数据不会被加载。)

“何时”后面的选项描述了一个条件;满足条件的输入记录将被加载。 如果正在使用丢弃数据集且未指定IGNORE(WHEN)选项,则不符合任何INTO TABLE语句的任何WHEN子句的输入记录将被写入该数据集。

字符串常量应在LOAD实用程序控制语句中指定为与输入数据记录匹配的字符集。 如果您的数据是EBCDIC格式,请在LOAD控制语句中指定EBCDIC常量;如果您的数据是UNICODE格式,请指定UNICODE常量。 您也可以使用十六进制形式编写“何时”条件。 例如,使用 (1:1)=X'31' 而不是 (1:1)='1'
SQL/DS=“表名
仅在LOAD语句中使用FORMAT SQL/DS 选项时有效。

表名是指已卸载到卸载数据集中的表的名称。 INTO TABLE 后的表名告诉您 SQL/DS 表被加载到哪个 Db2 表中。 如果表格名称中包含空格,请用引号将其括起来。

如果没有指定WHEN子句,则会将每个 SQL/DS 表中的记录加载到INTO TABLE后面指定的表中。

现场选择标准
描述一个字段和一个字符常量。 只有字段包含指定常量的记录才会被加载到INTO TABLE后面指定的表中。

选择标准中的字段必须:

  • 包含字符或图形字符串。 当输入记录的字段内容与字符串常量进行比较时,不会进行数据类型转换。
  • 在每个已组装的输入记录中,从相同的字节偏移量开始。 如果任何记录包含长度不同的字符串,且这些字符串以长度字段的形式存储在选项字段之前,则必须对其进行填充,以确保选项字段的起始位置始终位于相同的偏移量处。

田地和常数不必具有相同的长度。 如果不是,则在比较前对较短的进行填充。 字符串和图形字符串用空格填充。 十六进制字符串用零填充。

field-name
指定由字段说明定义的字段的名称。 如果使用字段名称 ,则字段开始和结束位置由字段规范的“位置”选项给出。
(开始:结束)
识别组装负载记录中的列号;记录的第一列是第1列。 这两个数字表示加载记录中选择字段的起始和结束列。

如果不使用 :end ,则该字段的长度与常量相同。

X“字节串”
将常量标识为十六进制字符串。 例如,下面的WHEN子句指定,如果记录在第33列和第34列中的值为X'FFFF' ,则加载该记录。
WHEN (33:34) = X'FFFF'
字符串
将常量标识为字符串。 例如,下面的 WHEN 子句指定,如果字段 DEPTNO 的值为 D11 ,则加载记录。
WHEN DEPTNO = 'D11'

如果字段使用特定的外部日期、时间或时间戳格式,则字段规范必须使用与指定格式匹配的字符串。

G“图形字符串
将常量标识为双字节字符串。 例如,下面的 WHEN 子句指定,如果记录在第 33 至 36 列中具有指定的值,则加载该记录。
WHEN (33:36) = G'<**>'
在这个例子中,<是换行字符,*是双字节字符,>是回车字符。

如果输入数据的第一个或最后一个字节是移位字符,则在比较时忽略它。 请将G指定为大写。

N“图形字符串
将常量标识为双字节字符串。 N和G是图形字符串常量的同义词。 请将N指定为大写字符。
(现场规格 ……)
描述要加载的数据的位置、格式和空值标识符。

如果没有使用字段规格:

  • 输入记录中的字段顺序应与 Db2 表格中的顺序。
  • 如果使用了LOAD语句中的FORMAT选项,则格式由该选项设置。
  • 输入中的固定字符串被认为具有固定的最大长度。 VARCHAR和VARGRAPHIC字段必须在数据之前包含一个有效的2字节二进制长度字段;VARCHAR或VARGRAPHIC字段与后续字段之间不允许有间隔。
  • 二进制字段被认为具有固定的最大长度。
  • VARBINARY字段必须在数据之前包含一个有效的2字节二进制长度字段。
  • ROWID字段的长度各不相同,且必须在数据之前包含一个有效的2字节二进制长度字段;ROWID字段和后续字段之间不允许有空隙。
  • LOB字段的长度各不相同,需要在数据前有一个有效的4字节二进制长度字段;它们与后面的LOB字段之间不允许有间隔。
  • 数字数据应采用适当的内部 Db2 数字表示。
  • 不能使用 NULLIF 或 DEFAULTIF 选项。

如果输入表中使用了任何字段规范,则该表中每个没有默认值的字段都必须有字段规范。 表中任何没有对应字段说明的字段都使用默认值。

如果输出表中的任何列没有字段说明,且被定义为非空且没有默认值,则实用程序作业步骤将终止。

身份列或行更改时间戳列只有在您使用默认生成属性定义它们时才会出现在字段说明中。

如果您正在加载应用程序或系统临时数据,并且包含字段规格,则必须同时指定开始时间和结束时间列字段。

字段名
指定一个字段名称,可以是您自己选择的名称。 如果要加载字段,除非指定了IGNOREFIELDS,否则名称必须是表中以INTO TABLE命名的列的名称。 您可以使用字段名称来指定传入数据的范围。 参见示例4:将不同数据类型的数据加载到空表空间中,以了解将选定记录加载到空表空间中的示例。

通过“位置”选项可以指定起点的坐标。 如果不使用“位置”,起始位置为上一字段末尾后的下一列。

LOAD按以下顺序之一确定字段的长度:

  1. 如果字段的数据类型为VARCHAR、VARGRAPHIC、VARBINARY、ROWID或XML,则长度信息应包含在数据之前的2字节二进制字段中。 对于VARCHAR、VARBINARY和XML字段,长度以字节为单位;对于VARGRAPHIC字段,长度字段标识双字节字符的数量。

    如果字段的数据类型为CLOB、BLOB或DBCLOB,则长度信息将包含在数据之前的4字节二进制字段中。 对于 BLOB 和 CLOB 字段,长度以字节为单位;对于 DBCLOB 字段,长度字段标识双字节字符的数量。

  2. 如果在“位置”选项中使用 “结束 ”,则长度从开始结束计算。 在这种情况下,CHAR、GRAPHIC、INTEGER、DECIMAL、FLOAT或DECFLOAT规格后面的任何长度属性都会被忽略。
  3. CHAR、GRAPHIC、INTEGER、DECIMAL、FLOAT或DECFLOAT规格中的长度属性用作长度。
  4. 长度取自 Db2 表格定义中的字段描述,或者根据数据类型为其指定默认值。 对于日期和时间字段,其长度在安装过程中定义。 对于可变长度字段,其长度由 Db2 表格定义中的列,不包括空值指示字节(如果存在)。 下表显示了每种数据类型的默认长度(以字节为单位)。
    表 1. 每种数据类型的默认长度(以字节为单位)
    数据类型 默认长度(以字节为单位)
    BIGINT 8
    BINARY 列定义中使用的长度
    BLOB varying
    CHARACTER 列定义中使用的长度
    CLOB varying
    日期 10(或安装默认值)
    DBCLOB varying
    DECFLOAT(16) 8
    DECFLOAT(34) 16
    外部十进制 输出列的精度为十进制,否则以列定义中使用的长度为准
    十进制打包 列定义中使用的长度
    十进制分区 输出列的精度为十进制,否则以列定义中使用的长度为准
    浮点(单精度) 4
    浮点(双精度) 8
    GRAPHIC 2乘以(列定义中使用的长度)
    INTEGER 4
    MIXED 混合DBCS数据
    ROWID varying
    SMALLINT 2
    时间 8(或安装默认值)
    TIMESTAMP 26
    VARBINARY varying
    VARCHAR varying
    VARGRAPHIC varying
    XML varying
    TIMESTAMP WITH TIME ZONE 33

如果未指定字段的数据类型,则假定其数据类型与加载该字段的列的数据类型相同,如 Db2 表格定义中。

POSITION(开始:结束
指示字段在装配负载记录中的位置。

start 和end 分别是字段第一列和最后一列的位置;记录的第一列是第1列。 该选项可以省略。

列的位置可以指定为:

  • 整数n ,表示实际列数
  • *,表示前一字段结束后的下一列
  • * +n ,其中 n 为整数,表示在*指定的位置之后 n列

不要将整个“位置”选项说明括起来,只需将开始和结束时间说明括起来。 下表列出了有效和无效的规格。

表 2. 有效和无效的“位置”规格示例
有效 无效
POSITION (10:20) (POSITION (10:20))
更改开始CONSTANTIF 字段选择标准更改结束
更改开始描述了导致 Db2 列加载常量值的条件。 您可以使用与“字段选择标准”中描述的相同选项来编写 “字段选择标准 ”。 如果CONSTANTIF字段的内容与提供的字符常量匹配,则字段说明中指定的字段将加载CONSTANT关键字中指定的值。

如果CONSTANTIF字段由VARCHAR或VARGRAPHIC字段的名称定义,则 Db2 从VARCHAR或VARGRAPHIC字段数据部分之前的2字节二进制字段中获取字段长度。

字符串常量应在LOAD实用程序控制语句中指定为与输入数据记录匹配的字符集。 如果您的数据是EBCDIC格式,请在LOAD控制语句中指定EBCDIC常量;如果您的数据是UNICODE格式,请指定UNICODE常量。 您也可以使用十六进制形式对CONSTANTIF条件进行编码。 例如,如果输入数据是EBCDIC格式,而控制语句是 UTF-8 格式,则应在条件中使用 (1:1)=X'31' ,而不是 (1:1)='1'

更改结束
更改开始CONSTANT(...)更改结束
更改开始指定以常量值加载与字段名匹配的列。 与CONSTANT关键字关联的字段名必须与指定表的列名匹配。 CONSTANT字段的值和类型由指定的值决定,且必须适用于目标列。

对于常量字段,不允许使用其他字段规格选项。 LOB或XML列不能指定为常量字段。

如果因为CONSTANT关键字指定的无效值而丢弃记录,则丢弃数据集中的记录将反映SYSREC中的原始记录,而不是加载的具有常量值的记录。

字符串
指定要插入目标列的字符串。 如果指定的字符串是 “字符串” 形式,即使SYSREC的编码方案与SYSIN的编码方案不同,也会假定它采用SYSIN的编码方案。 在将字符串插入目标列之前,可能会进行转换。
十六进制字符串
指定要插入目标列的十六进制值。 十六进制值必须以 X'hex-string' 的格式指定。
整数
指定要插入目标列的整数。 有效值介于-2147483648和2147483647之间。
CURRENT DATE
指定将当前日期插入目标列。
CURRENT TIME
指定将当前时间插入目标列。
CURRENT TIMESTAMP
指定将当前时间戳插入目标列。
NULL
指定目标列应设为 NULL。 目标列必须为空。

更改开始要为 GRAPHIC 或 VARGRAPHIC 提供常量值,请使用带有“ string ”或 X“ hex-string ”文字的 CHAR 或 VARCHAR。 更改结束

更改开始例如 DEPTNO POSITION(3) VARCHAR CONSTANT('403')更改结束

更改结束

字段规范中的数据类型 :字段的数据类型可以用以下任意关键字指定。 除图形字段外, 长度是指输入字段的字节数。

所有标有“外部”的数字在输入记录中采用相同的格式。

更改开始指定 CCSID 时,LOAD 支持以下输入字段格式:更改结束

更改开始
表 3. 支持从源到目标字段的CSSID格式
来源:CCSID 目标CCSID
ASCII EBCDIC UNICODE 带UNICODE列的EBCDIC表
ASCII False
EBCDIC
UNICODE False
带UNICODE列的EBCDIC表 False 1
更改结束
表说明:
  1. 可能需要将安装面板 DSNTIPF 上的 EBCDIC CCSID 字段设置为使用图形。
CHAR(长度
指定一个固定长度的字符串。 如果您没有指定长度 ,字符串的长度将根据位置说明确定。 如果您没有指定长度或位置,LOAD将使用CHAR的默认长度,该长度由表中列的长度决定。 您也可以指定字符和字符 (长度 )。

当您指定 CHAR 作为 CLOBF、BLOBF 或 DBCLOBF 文件名的类型时,您还必须提供长度,以便 LOAD 实用程序确定正确的文件名。 否则, DSNU338I 将针对无效的列说明发出。

BIT
指定输入字段包含位数据。 如果指定了BIT,LOAD将绕过输入数据的任何CCSID转换。 如果目标列具有位数据类型属性,LOAD将绕过输入数据的任何代码页转换。
更改开始CCSID 1208更改结束
更改开始指定输入字段包含 CCSID 1208 ( UTF-8 ) 格式的数据。 如果发生数据转换,输入数据将使用 CCSID 1208。更改结束
MIXED
指定输入字段包含混合的SBCS和DBCS数据。 如果指定了MIXED,则任何必需的CCSID转换都将使用混合CCSID作为输入数据。 如果未指定MIXED,则任何此类转换都将使用SBCS CCSID作为输入数据。
BLOBF
表示输入字段包含一个BLOB文件的名称,该文件将被加载到指定的BLOB/XML列中。

二进制XML 指定使用文件引用变量加载的XML文档采用可扩展动态二进制XML Db2 客户端/服务器二进制XML格式(binary XML)。

CLOBF
表示输入字段包含一个 CLOB 文件的名称,该文件将被加载到指定的 CLOB/XML 列。更改开始
更改开始CCSID 1208更改结束
更改开始指定输入字段包含 CCSID 1208 ( UTF-8 ) 格式的数据。 如果发生数据转换,输入数据将使用 CCSID 1208。更改结束
更改结束
DBCLOBF
表示输入字段包含一个 DBCLOBF 文件的名称,该文件将被加载到指定的 DBCLOB/XML 列。更改开始
更改开始CCSID 1200更改结束
更改开始指定 CLOB 输入文件中的数据为 CCSID 1200 ( UTF-16 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1200。更改结束
更改结束
PRESERVE WHITESPACE
指定保留XML列中的空白。 默认设置是不保留空白。
STRIP
指定LOAD从数据的开头、结尾或两端删除零(默认)或指定字符。 LOAD将CHAR字段填充,使其填满整个列。

LOAD在执行任何字符代码转换或填充之前应用条带操作。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除空白或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
“字符串”
指定LOAD要从数据中删除的单字节或双字节字符。

在EBCDIC中指定此字符值。 根据输入编码方案,LOAD 会在将 strip-char 值用于剥离操作之前,先对其进行 SBCS CCSID 转换。

如果待加载列的子类型为BIT,或者您想在EBCDIC以外的编码方案中指定条带字符值 ,请使用十六进制形式 (X'strip-char' )。 如果使用十六进制形式,LOAD不会进行任何CCSID转换。

X'条形字符
以十六进制形式指定LOAD要从数据中删除的单字节或双字节字符。 对于单字节字符,请以 X'hh' 的形式指定该值,其中 hh 是两个十六进制字符。 对于双字节字符,请以 X'hhhh' 的形式指定该值,其中 hhh 是四个十六进制字符。

使用十六进制形式指定EBCDIC编码方案以外的字符。 当您以十六进制形式指定字符值时,LOAD不会执行任何CCSID转换。

如果您指定十六进制格式的条形字符,则必须以输入编码方案指定该字符。

TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。 LOAD在任何CCSID转换后执行截断操作。

如果输入数据为二进制数据,LOAD会在字节边界截断数据。 如果输入数据是SBCS或MIXED数据,LOAD会在字符边界处截断数据。 (双字节字符不拆分。) 如果混合字段被截断以适应一列,则截断后的字符串可能比指定的列大小短。 在这种情况下,输出CCSID中的空白会向右填充。 如果混合数据采用EBCDIC编码,截断操作会保留DBCS字符串周围的SO(移出)和SI(移入)字符。

VARCHAR
指定一个长度可变的字符字段。 字节长度必须以2字节二进制字段的形式在数据之前指定。 (长度不包括2字节字段本身。) 长度字段必须从“位置”选项中指定的列开始。 如果使用了 :end ,则会被忽略。
BIT
指定输入字段包含位数据。 如果指定了BIT,LOAD将绕过输入数据的任何CCSID转换。 如果目标列具有位数据类型属性,LOAD将绕过输入数据的任何代码页转换。
MIXED
指定输入字段包含混合DBCS数据。 如果指定了MIXED,则任何必需的CCSID转换都将使用混合CCSID作为输入数据。 如果未指定MIXED,则任何此类转换都将使用SBCS CCSID作为输入数据。
更改开始CCSID 1208更改结束
更改开始 指定 CLOB 输入文件中的数据采用 CCSID 1208 ( UTF-8 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1208。更改结束
BLOBF
表示输入字段包含一个BLOB文件的名称,该文件将被加载到指定的BLOB/XML列中。

二进制XML 指定使用文件引用变量加载的XML文档为二进制XML格式。

CLOBF
表示输入字段包含一个 CLOB 文件的名称,该文件将被加载到指定的 CLOB/XML 列。更改开始
更改开始CCSID 1208更改结束
更改开始指定 CLOB 输入文件中的数据采用 CCSID 1208 ( UTF-8 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1208。更改结束
更改结束
DBCLOBF
表示输入字段包含一个 DBCLOBF 文件的名称,该文件将被加载到指定的 DBCLOB/XML 列。更改开始
更改开始CCSID 1200更改结束
更改开始指定 CLOB 输入文件中的数据为 CCSID 1200 ( UTF-16 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1200。更改结束
更改结束
PRESERVE WHITESPACE
指定保留XML列中的空白。 默认设置是不保留空白。
STRIP
指定LOAD从数据的开头、结尾或两端删除零(默认)或指定字符。 LOAD 将 VARCHAR 长度字段调整为剥离数据的长度。

LOAD在执行任何字符代码转换或填充之前应用条带操作。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除空白或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
“字符串”
指定LOAD要从数据中删除的单字节或双字节字符。

在EBCDIC中指定此字符值。 根据输入编码方案,LOAD 会在将 strip-char 值用于剥离操作之前,先对其进行 SBCS CCSID 转换。

如果待加载列的子类型为BIT,或者您想在EBCDIC以外的编码方案中指定条带字符值 ,请使用十六进制形式 (X'strip-char' )。 如果使用十六进制形式,LOAD不会进行任何CCSID转换。

X'条形字符
以十六进制形式指定LOAD要从数据中删除的单字节或双字节字符。 对于单字节字符,请以 X'hh' 的形式指定该值,其中 hh 是两个十六进制字符。 对于双字节字符,请以 X'hhhh' 的形式指定该值,其中 hhh 是四个十六进制字符。

使用十六进制形式指定EBCDIC编码方案以外的字符。 当您以十六进制形式指定字符值时,LOAD不会执行任何CCSID转换。

如果您指定十六进制格式的条形字符,则必须以输入编码方案指定该字符。

TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。 LOAD在任何CCSID转换后执行截断操作。

如果输入数据为二进制数据,LOAD会在字节边界截断数据。 如果输入数据是字符类型数据,LOAD会在字符边界处截断数据。 如果截断混合字符类型数据以适应固定大小的列,则截断后的字符串可能比指定的列大小短。 在这种情况下,输出CCSID中的空白会向右填充。

GRAPHIC(长度
指定固定长度的图形类型。 您可以为字段说明指定开始结束时间

如果使用图形,输入数据不得包含换行符。 开始结束必须指明数据本身的开始和结束位置。

长度是指双字节字符的数量。 字节数是长度值的2倍。 如果您没有指定 长度 ,则双字节字符的数量由 POSITION 规范确定。 如果您没有指定 长度或位置,LOAD将使用GRAPHIC的默认长度,该长度由表中列的长度决定。

更改开始例如,让 *** 表示三个双字节字符。 如需描述***,请指定 POSITION(1:6) GRAPHICPOSITION(1) GRAPHIC(3)。 以这种方式描述的图形字段不能在字段选择标准中指定。更改结束

STRIP
指定LOAD从数据的开头、结尾或两端删除零(默认)或指定字符。

LOAD在执行任何字符代码转换或填充之前应用条带操作。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除空白或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
X'条形字符
指定LOAD要从数据中剥离的双字节字符的十六进制形式。 在表格中用X'hhhh' 指定这个值,其中 hhh 是四个十六进制字符。

您必须在输入编码方案中指定字符。

TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。 LOAD在任何CCSID转换后执行截断操作。

LOAD命令在字符边界截断数据。 双字节字符不会拆分。

更改开始CCSID 1200更改结束
更改开始指定 CLOB 输入文件中的数据为 CCSID 1200 ( UTF-16 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1200。更改结束
GRAPHIC EXTERNAL(长度
指定具有外部格式的固定长度的图形类型字段。 您可以为字段说明指定开始结束时间

如果使用图形外部,输入数据必须在起始位置包含一个移出字符,在结束位置包含一个移入字符。 除了换行符,该字段必须包含偶数字节。 任何一对字符的第一个字节都不能是换行符。

长度是指双字节字符的数量。 图形外部(GRAPHIC EXTERNAL) 的长度不包括换行符所占的字节数。 字节数是长度值的2倍。 如果您没有指定 长度 ,则双字节字符的数量由 POSITION 规范确定。 如果您没有指定 长度或位置,LOAD将使用GRAPHIC的默认长度,该长度由表中列的长度决定。

更改开始例如,让 *** 代表三个双字节字符,让 < 和 > 代表移出和移入字符。 然后,要描述 <****>,请指定 POSITION(1:8) GRAPHIC EXTERNALPOSITION(1) GRAPHIC EXTERNAL(3)更改结束

STRIP
指定LOAD从数据的开头、结尾或两端删除零(默认)或指定字符。

LOAD在执行任何字符代码转换或填充之前应用条带操作。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除空白或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
X'条形字符
指定LOAD要从数据中剥离的双字节字符的十六进制形式。 在表格中用X'hhhh' 指定这个值,其中 hhh 是四个十六进制字符。

您必须在输入编码方案中指定字符。

TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。 LOAD在任何CCSID转换后执行截断操作。

LOAD命令在字符边界截断数据。 双字节字符不会拆分。

VARGRAPHIC
标识一个长度可变的图形区域。 长度(以双字节字符为单位)必须在数据前面的2字节二进制字段中指定。 (长度不包括2字节字段本身。) 长度字段必须从指定为起始列的列开始,该列在“位置”选项中指定。如果使用了 “结束 ”,则忽略它。

VARGRAPHIC输入数据不得包含换行符。

STRIP
指定LOAD从数据的开头、结尾或两端删除零(默认)或指定字符。 LOAD根据剥离数据的长度(DBCS字符数)调整VARGRAPHIC长度字段。

LOAD在执行任何字符代码转换或填充之前应用条带操作。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除空白或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
X'条形字符
指定LOAD要从数据中剥离的双字节字符的十六进制形式。 在表格中用X'hhhh' 指定这个值,其中 hhh 是四个十六进制字符。

您必须在输入编码方案中指定字符。

TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。 LOAD在任何CCSID转换后执行截断操作。

LOAD命令在字符边界截断数据。 双字节字符不会拆分。

更改开始CCSID 1200更改结束
更改开始指定 CLOB 输入文件中的数据为 CCSID 1200 ( UTF-16 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1200。更改结束
SMALLINT
指定一个2字节的二进制数。 负数用二进制补码表示。
INTEGER
指定一个4字节的二进制数。 负数用二进制补码表示。 您也可以指定INT。
INTEGER EXTERNAL(长度
表示数字的一串字符。 格式为SQL数字常量。 如果您没有指定 长度 ,字符串的长度将根据位置说明确定。 如果您没有指定 长度或位置,LOAD将使用INTEGER的默认长度,即4字节。 您也可以指定 INT EXTERNAL。
BIGINT
指定一个8字节的二进制数。 负数用二进制补码表示。
BINARY(长度
指定一个固定长度的二进制字符串。 如果您没有指定 长度 ,字符串的长度将根据位置说明确定。 如果您没有指定 长度或位置,LOAD将使用二进制文件的默认长度,该长度由表中列的长度决定。 X'strip-char' 的默认值为十六进制零 (X'00' )。 该字段不进行数据转换。
STRIP
指定LOAD从数据的开头、结尾或两端删除二进制零(默认)或指定的X'strip-char'。 LOAD填充二进制字段,使其填满该列的剩余部分。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除二进制零或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除空白或指定的条带字符。
LEADING
表示LOAD将从数据开头删除空白或指定的条带字符。
X'条形字符
以十六进制形式指定LOAD要从数据中剥离的单字节或双字节字符。 对于单字节字符,请以 X'hh' 的形式指定该值,其中 hh 是两个十六进制字符。
TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。

LOAD命令在字符边界截断数据。

VARBINARY
指定一个长度可变的二进制字符串。 数据前必须以2字节二进制字段指定字节数(字节数不包括2字节字段本身)。 长度字段必须从“位置”选项中指定的列开始。 如果使用了 :end ,则会被忽略。 X'strip-char' 的默认值为十六进制零 (X'00' )。 该字段不进行数据转换。
STRIP
指定LOAD从数据的开头、结尾或两端删除二进制零(默认)或指定的字符。 LOAD填充VARBINARY字段,使其填满该列的剩余部分。

STRIP选项的效果与SQL STRIP标量函数相同。

两者
表示LOAD将从数据的开头和结尾删除二进制零或指定的条带字符。
TRAILING
表示LOAD将从数据末尾删除二进制零或指定的条带字符。
LEADING
表示LOAD将从数据开头删除二进制零或指定的条带字符。
X'条形字符
以十六进制形式指定LOAD要从数据中剥离的单字节字符。 对于单字节字符,请以 X'hh' 的形式指定该值,其中 hh 是两个十六进制字符。
TRUNCATE
表示如果字符串无法放入目标列,LOAD将从右侧截断输入字符串。

LOAD命令在字符边界截断数据。

DECIMAL PACKED
指定一个数字,格式为 ddd...ds ,其中 d 是十进制数,由四个二进制位表示, s 是4位符号值。 加号(+)用A、C、E或F表示,减号(-)用B或D表示。 ds的最大值与SQL定义中允许的最大位数相同。 您也可以指定 DECIMAL、DEC 或 DEC PACKED。
DECIMAL ZONED
指定一个数字,格式为 znznzn...z/sn ,其中 z 、ns 的取值如下:
n
由字节右4位(称为数字位 )表示的小数点后一位
z
该数字的区域,由左边的4位表示
s
十进制操作数最右边的字节;s 可以被当作一个区域或该数字的符号值
加号(+)用A、C、E或F表示,减号(-)用B或D表示。 zns的最大值与SQL定义中允许的最大位数相同。 您也可以指定DEC ZONED。
DECIMAL EXTERNAL(长度、尺度
指定表示数字的字符串。 格式为SQL数字常量。
length
输入字段的总长度,以字节为单位。 如果您没有指定 长度 ,则输入字段的宽度由“位置”规范决定。 如果您没有指定 长度或位置,LOAD将使用DECIMAL EXTERNAL的默认长度,该长度由小数精度决定。
刻度
指定小数点右边的位数。 比例必须是一个大于或等于0的整数,并且可以大于长度默认值 为0

如果比例大于长度 ,或者提供的位数少于指定的比例 ,则输入的数字在左边用零补齐,直到到达小数点位置。 如果比例大于目标比例 ,则源比例确定隐含的小数位数。 所有大于目标刻度的分数位数字均被截断。 如果指定了比例,且目标列的数据类型为小整数或整数,则输入数字的小数部分将被忽略。 如果存在小数点,则其位置优先于刻度的字段说明。

FLOAT(长度
指定64位浮点数或32位浮点数。 如果长度介于1到21之间(包括1和21),则该数字在 s390 (HFP)格式中为32位:
位0
表示一个符号(0代表正,1代表负)
第1-7位
代表指数
第8-31位
表示尾数

如果长度介于1到24之间(包括1和24),则该数字为IEEE(BFP)格式的32位数字:

位0
表示一个符号(0代表正,1代表负)
第1-8位
代表指数
第9-31位
表示尾数

如果长度未指定,或介于22和53之间(包括22和53),则该数字为64位,采用 s390 (HFP)格式:

位0
表示一个符号(0代表正,1代表负)
第1-7位
代表指数
位 8-63
表示尾数。

如果长度未指定,或介于25和53之间(包括25和53),则该数字为IEEE(BFP)格式的64位:

位0
表示一个符号(0代表“加”,1代表“减”)
第1-11位
代表指数
位 12-63
表示尾数。
您也可以为单精度浮点数指定REAL,为双精度浮点数指定DOUBLE PRECISION。
FLOAT EXTERNAL(长度
指定表示数字的字符串。 格式为SQL浮点常数。

浮点(IEEE)或浮点( S390 )的规格不适用于这种浮点数字的格式(字符串)。

如果您没有指定长度 ,字符串的长度将根据位置说明确定。 如果您没有指定长度或位置,LOAD将使用FLOAT的默认长度,即单精度4字节,双精度8字节。

更改开始日期 日期_P更改结束
更改开始指定日期的十进制表示法。 日期值长度必须为 3 个字节,格式为 DATE_P(X'YYDDDs',其中 YY 为年份,DDD 为日期,s 为符号)。更改结束
DATE EXTERNAL
指定日期的字符串表示形式。 您可以指定长度或特定的日期格式。
(长度
长度(如果未指定)为本地数据长度安装选项中的指定长度,如果没有提供,则默认为10字节。 如果您指定了长度,则必须在8-254字节之间。
如果未指定日期格式,则日期可以采用以下任何一种格式。 月份和日期可以省略前导零。 您可以使用尾随空格,但不允许使用前导空格。
  • dd.mm.yyyy
  • 月/日/年
  • 年-月-日
  • 在安装 Db2 安装时
更改开始(日期格式)更改结束
更改开始日期表示格式,如下表所示。
表 4. 日期格式的
日期格式值 格式 长度
日期_A -日-年 1 10字节
日期_B 月-日-年 1, 2 8 字节
日期_C -月-日 1 10字节
日期_D 年-月-日 1, 2 8 字节
日期_E dd-mm- yyyy 1 10字节
日期_F 日-月-年 1, 2 8 字节
日期_G 年月日 1 8 字节
日期_H yy-ddd 1, 2 6 字节
日期_I yyyymmdd 8 字节
日期_J 2 6 字节
日期_K yyyymmdd 8 字节
日期_L 年、月、日 2 6 字节
日期_M yyyymmdd 8 字节
日期_N ddmmyy 2 6 字节
日期_O yyyyddd 7字节
日期_P y yddd 2 5字节

如果在字段规范中为某个字段指定了日期格式,则该字段规范也必须使用指定的日期格式。

注:
  1. 如果格式中包含分隔符,则分隔符可以是任何可转换为单字节 EBCDIC 字符的单字节字符。 但是,如果输入文件采用分隔符格式,则不能指定与分隔符相同的字符,包括 COLDEL、CHARDEL 和 DECPT 分隔符。 有关分隔符限制的更多信息,请参阅加载分隔文件
  2. 如果指定了两位数的年份,则会自动扩展为四位数的年份。 如果两位数的年份小于当前年份两位数加50的总和,则当前世纪用于四位数的年份。 例如,假设今年是2017年。 如果两位数的年份是67,则使用1967。 但是,如果两位数的年份是66,则使用2066。
更改结束
TIME EXTERNAL
指定时间字符串表示形式。 您可以指定长度或特定的时间格式。
(长度
长度(如果未指定)为本地时间长度安装选项的指定长度,如果没有提供,则默认为8字节。 如果您指定了长度,则必须在4-254字节之间。
如果未指定格式,时间可以采用以下任意一种格式:
  • hh.mm.ss
  • 上午:小时:分钟
  • 下午:小时:分钟
  • 小时:分钟:秒
  • 在安装 Db2 安装时

如果 mm 等于00,则可以省略 hh:mm AMhh:mm PM 格式中的 mm部分。 例如,5 PM是一个有效的表达,可以用来代替5:00 PM。

更改开始(时间格式)更改结束
更改开始时间表示法的具体格式如下表所示。
表5。 时间格式的
时间格式值 格式 长度
时间_A hh.mm.ss 1 8 字节
时间_B hh.mm 1 5字节
TIME_C hh.mm 上午或 hh.mm 1 8 字节
时间_D hhmmss 6 字节
TIME_E hhmm 4 字节

如果为字段规范中使用的字段指定了时间格式,则字段规范也必须使用指定的时间格式。

注:
  1. 如果格式中包含分隔符,则分隔符可以是任何可转换为单字节 EBCDIC 字符的单字节字符。
更改结束
TIMESTAMP EXTERNAL
指定时间字符串表示形式。 您可以指定长度或特定时间戳格式。
(长度
默认长度为26字节。 如果您指定长度,则必须在19-32字节范围内。
如果未指定时间戳格式,则时间戳可采用以下任意一种格式。 nnnnnn 代表微秒数,可以为0-12位数字。 您可以省略时间戳中月份、日期或小时部分的零,也可以省略时间戳中微秒部分的零。
  • yyyy-mm-dd-hh.mm.ss
  • yyyy-mm-dd-hh.mm.ss.nnnnnn
  • yyyy-mm-dd hh:mm:ss.nnnnnn
(时间戳格式
时间戳的格式如下表所示。
表6。 时间戳格式的
时间戳格式值 格式 长度
TIMESTAMP_A yyyy-mm-dd-hh.mm.ss 1 19字节
TIMESTAMP_B yyyy-mm-dd-hh.mm.ss.nnnnnn 1 26字节
TIMESTAMP_C YYYYMMDDhhmmss 14字节
TIMESTAMP_D 、月、日、时、分、秒 2 12字节
时间戳_E yyyymmddhhmmssnnnnnnnn 20字节
TIMESTAMP_F 年 月 日时 分 秒 毫 秒 2 18 字节

如果为字段规范中使用的字段指定了时间戳格式,则字段规范也必须使用指定的时间戳格式。

注:
  1. 如果格式中包含分隔符,则分隔符可以是任何可转换为单字节 EBCDIC 字符的单字节字符。
  2. 如果指定了两位数的年份,则会自动扩展为四位数的年份。 如果两位数的年份小于当前年份两位数加50的总和,则当前世纪用于四位数的年份。 例如,假设今年是2017年。 如果两位数的年份是67,则使用1967。 但是,如果两位数的年份是66,则使用2066。
TIMESTAMP WITH TIME ZONE EXTERNAL(长度
指定带时区的时间戳的字符串表示形式。 默认长度为33字节。 如果您指定了长度,则必须在26到39字节之间。
带时区的时间戳可以采用以下任意一种格式。 nnnnnn 表示小数秒位数,可以为0-12位。 您可以省略时间戳中月份、日期或小时部分的零,也可以省略时间戳中秒数部分的零。
  • yyyy-mm-dd-hh.mm.ss.nnnnnn ±th:tm
  • yyyy-mm-dd-hh.mm.ss.nnnnnn ±th:tm
  • yyyy-mm-dd hh:mm:ss.nnnnnn ±th:tm
  • 年月日 hh:mm:ss.nnnnnn ±th:tm
ROWID
指定行ID。 输入数据必须为行ID的有效值; Db2 不进行任何转换。

如果行ID列是使用GENERATED ALWAYS选项创建的,则不允许为该列指定字段规格。

如果行ID列是分区键的一部分,则不允许使用LOAD INTO TABLE PART;请改为使用LOAD INTO TABLE。

BLOB
指定一个BLOB字段。 您必须在数据前面的4字节二进制字段中指定字节数。 (长度不包括 4字节字段本身。) 长度字段必须从“位置”选项中指定的起始列开始。 如果使用了 :end ,则会被忽略。
CLOB
指定一个CLOB字段。 您必须在数据前面的4字节二进制字段中指定字节数。 (长度不包括 4字节字段本身。) 长度字段必须从“位置”选项中指定的起始列开始。 如果使用了 :end ,则会被忽略。
MIXED
指定输入字段包含混合的SBCS和DBCS数据。 如果指定了MIXED,则任何必需的CCSID转换都将使用混合CCSID作为输入数据;如果未指定MIXED,则任何此类转换都将使用SBCS CCSID作为输入数据。
更改开始CCSID 1208更改结束
更改开始指定 CLOB 输入文件中的数据采用 CCSID 1208 ( UTF-8 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1208。更改结束
DBCLOB
指定一个DBCLOB字段。 您必须在数据前面的4字节二进制字段中以双字节字符指定长度。 (长度不包括 4字节字段本身。) 长度字段必须从“位置”选项中指定的起始列开始。 如果使用了 :end ,则会被忽略。更改开始
更改开始CCSID 1200更改结束
更改开始指定 CLOB 输入文件中的数据为 CCSID 1200 ( UTF-16 ) 格式。 如果进行数据转换,输入数据将使用 CCSID 1200。更改结束
更改结束
DECFLOAT (长度)
指定128位十进制浮点数或64位十进制浮点数。 长度值必须为16或34。 如果长度为16,则该数字为64位十进制浮点数字格式。 如果长度为34,则该数字为128位十进制浮点格式。 如果未指定长度,则该数字采用128位十进制浮点格式。
DECFLOAT EXTERNAL (长度)
指定表示数字的字符串。 格式为SQL数字常量。 如果您没有指定长度,字符串的长度将根据POSITION说明确定。 如果您没有指定长度或位置,LOAD将使用DECFLOAT的默认长度。
XML
指定输入字段类型为XML。 字段类型XML只能加载到XML列中。 当直接从输入记录中加载XML值时,请指定XML。 如果输入记录的格式为非分隔格式,则必须在实际数据值之前指定一个2字节长的字段。

二进制XML 指定使用文件引用变量加载的XML文档为二进制XML格式。

PRESERVE WHITESPACE
指定保留XML列中的空白。 默认设置是不保留空白。
更改开始 DEFAULTIF 默认条件 更改结束
更改开始

指定(在字段说明中指定的)字段在指定条件为真时加载默认列值。

默认条件

评估的条件。 对于每个字段,您只能指定一个条件。

在这种情况下,请指定与输入数据记录位于同一字符集中的任何字符串常量。 例如,如果您的数据是EBCDIC编码,请指定EBCDIC常量;如果您的数据是UNICODE编码,请指定UNICODE常量。 您也可以使用十六进制形式对DEFAULTIF条件进行编码。 例如,如果输入数据是EBCDIC格式,而控制语句是 UTF-8 格式,则应在条件中使用 (1:1)=X'31' ,而不是 (1:1)='1'

如果将 DEFAULTIF 与 ROWID 关键字结合使用,且条件满足,则列中会加载 Db2 生成的值。

您不能为XML列指定DEFAULTIF。

CONV_ERROR

指定条件为转换错误。 如果发生转换错误,将加载默认值。

字段名

与常量值进行比较的字段名称。 您必须指定字段说明中定义的字段名称。 如果使用 字段名称 ,则字段起始和结束位置由字段规范的 POSITION 选项给出。

您指定的字段必须满足以下所有要求:

  • 包含字符或图形字符串。 当输入记录的字段内容与字符串常量进行比较时,不会进行数据类型转换。
  • 在每个已组装的输入记录中,从相同的字节偏移量开始。 如果任何记录包含长度不同的字符串,且这些字符串以长度字段的形式存储在选项字段之前,则必须对其进行填充,以确保选项字段的起始位置始终位于相同的偏移量处。

田地和常数不必具有相同的长度。 如果不是,则在比较前对较短的进行填充。 字符串和图形字符串用空格填充。 十六进制字符串用零填充。

如果该字段是VARCHAR或VARGRAPHIC字段,则 Db2 会从VARCHAR或VARGRAPHIC字段数据部分之前的2字节二进制字段中获取字段的长度。

= <>
指定字段( field-namestart : end 与常量(X ' 字节串 ', ' 字符串 ', G ' 图形字符串 ',或 N' 图形字符串 ')。
=
等于
<>
不等于
开始:结束

标识组装负载记录中的列号,用于在 DEFAULTIF 条件中进行比较。 记录的第一列是第1列。 这两个数字表示加载记录中选择字段的起始和结束列。

如果未使用端点 ,则该字段的长度与常量相同。

X“字节串”
一串十六进制字符。 例如,以下条件指定,如果记录在第33至34列中具有值 X'FFFF' ,则加载默认值。
(33:34) = X'FFFF'
字符串
一个字符串。 例如,以下条款规定,如果字段 DEPTNO 的值为 D11 ,则加载默认值。
DEPTNO = 'D11'

如果字段使用特定的外部日期、时间或时间戳格式,则字段规范必须使用与指定格式匹配的字符串。

G“图形字符串
一个双字节字符串。 例如,以下条款规定,如果记录在第33至36列中具有指定的值,则默认加载。
(33:36) = G'<**>'
在这个例子中,<是换行字符,*是双字节字符,>是回车字符。

如果输入数据的第一个或最后一个字节是移位字符,则在比较时忽略它。 请将G指定为大写。

N“图形字符串
一个双字节字符串。 N和G是图形字符串常量的同义词。 请将N指定为大写字符。
更改结束
NULLIF 现场选择标准
描述导致 Db2 列被加载为空。 您可以使用与 “字段选择标准” 下描述的相同选项来编写字段选择标准。 如果 NULLIF 字段的内容与提供的字符常量匹配,则字段说明中指定的字段将加载 NULL。

如果NULLIF字段由VARCHAR或VARGRAPHIC字段的名称定义,则 Db2 从VARCHAR或VARGRAPHIC字段数据部分之前的2字节二进制字段中获取字段长度。

要将空值加载到 BLOBF、CLOBF 或 DBCLOBF 字段中,请使用空输入文件名。

字符串常量应在LOAD实用程序控制语句中指定为与输入数据记录匹配的字符集。 如果您的数据是EBCDIC格式,请在LOAD控制语句中指定EBCDIC常量;如果您的数据是UNICODE格式,请指定UNICODE常量。 您也可以使用十六进制格式为 NULLIF 条件编码。 例如,如果输入数据是EBCDIC格式,而控制语句是 UTF-8 格式,则应在条件中使用 (1:1)=X'31' ,而不是 (1:1)='1'

输出表中的某个字段被加载为 NULL,并不会改变输入记录中相应字段的格式或功能。 输入字段仍可用于字段选择标准。 例如,假设LOAD语句具有以下字段说明:

(FIELD1 POSITION(*) CHAR(4)
 FIELD2 POSITION(*) CHAR(3) NULLIF(FIELD1='SKIP')
 FIELD3 POSITION(*) CHAR(5))

假设LOAD要处理以下源记录:

SKIP   FLD03

在此示例中,记录加载如下:

FIELD1
具有值“跳过”。
FIELD2
为空(不是源记录中的“”)。
FIELD3
值是 ' FLD03 '。

不能将 NULLIF 参数与 ROWID 关键字一起使用,因为行 ID 列不能为空。

现场选择标准

描述导致 Db2 列被加载为空或默认值。