List partitioning controls how individual rows map to specific partitions. List partitions are not ordered and are useful for low cardinality values. Each partition value list must have at least one value, and no value can appear in more than one list.
This example creates a table with two list partitions:
create table my_publishers (pub_id char(4) not null, pub_name varchar(40) null, city varchar(20) null, state char(2) null) partition by list (state) (west values (‘CA’, ‘OR’, ‘WA’) on seg1, east value ( ‘NY’, ‘NJ’) on seg2)
An attempt to insert a row with a value in the state column other than one provided in the list fails. Similarly, an attempt to update an existing row with a key column value other than one provided in the list fails. As with range-partitioned tables, the values in each list act as a check constraint on the entire table.