DB2 11.5指定表空间创建索引报错,SQL0109N问题排查
DB2 11.5创建索引指定表空间语法错误解决办法
你的问题出在CREATE INDEX语句的语法不符合DB2 11.5的规范,具体错误点和修正方案如下:
错误原因
- 指定表空间的关键字错误:DB2中不能直接用
IN <表空间名>来指定索引的表空间,必须使用完整的IN TABLESPACE <表空间名>子句。 - 分区选项的位置错误:
PARTITIONED/NOT PARTITIONED子句需要放在表空间子句之前,且不能与IN直接拼接使用。
正确语句示例
非分区索引
CREATE INDEX SCH.TBL_CAT_ERR_NIX01 ON SCH.TBL_CAT_ERR (CAT_NO ASC, CAT_ERR_ID ASC) NOT PARTITIONED IN TABLESPACE TBS_CAT_SINDEX;
分区索引
如果需要创建与表同分区策略的分区索引,语法如下:
CREATE INDEX SCH.TBL_CAT_ERR_NIX01 ON SCH.TBL_CAT_ERR (CAT_NO ASC, CAT_ERR_ID ASC) PARTITIONED IN TABLESPACE TBS_CAT_SINDEX;
补充说明
若你的表是分区表,且希望索引使用与表不同的分区表空间配置,可使用PARTITION <分区号> IN TABLESPACE <表空间名>的格式逐个指定分区,但这属于进阶用法,修正基础语法错误后即可解决当前报错。
内容的提问来源于stack exchange,提问作者fauzimh
相关产品推荐
相关产品推荐

