使用 List Fragment 子句指定存储在同一分片中分片键值的列表。分配给每个分片的行必须符合定义此分片的分片键值(或以逗号分隔的分片键值列表中的一个值)。
对于任何分片,可以可选地定义 REMAINDER 分片来存储不符合分片键值列表的行。
可以可选地定义 NULL 分片,以存储具有缺失分片键数据的行。做法为在该分片的列表表达式子句的 VALUES 关键字之后只指定 IS NULL 或 NULL。您不能在包含其它表达式的表达式列表中包含 NULL 或 IS NULL 。(在此上下文中,NULL 和 IS NULL 是关键字同义词。)如果没有定义 REMAINDER 分片,而 INSERT 、UPDATE 、MERGE 或其它 DML 操作试图存储一个分片键与所有分片的列表值不符合的行,则数据库服务器发出异常。
当您为表或索引定义一个基于列表的分区方案时,该分片列表最多只能包含一个 NULL 分片,和一个 REMAINDER 分片。
如果 BY LIST 分区的表没有 NULL 或 REMAINDER 分片,但是您紧跟地决定需要这些分片或需要其中一个,可以通过使用 ALTER FRAGMENT 语句的 ADD 选项在分片列表中添加 NULL 分片或 REMAINDER 分片(或者两者都添加)。有关更多信息,请参阅 ADD 子句。