问题描述
我使用 DB2 Z/OS 11.01。 是否可以重命名已在 DB2 z/OS 上定义的表空间? 从文档中我没有看到任何限制,但我看不到。
下面我向您展示我的测试用例:
--
CREATE TABLESPACE TSFOOT
IN DBTEST01
USING STOGROUP SGTEST01
PRIQTY 48 SECQTY 48
ERASE NO
FREEPAGE 0 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
MAXPARTITIONS 1
LOGGED
DSSIZE 4 G
SEGSIZE 32
BUFFERPOOL BP1
LOCKSIZE ANY
LOCKMAX SYstem
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 255;
--
COMMIT;
--
CREATE TABLE TEST01.TBFOOT
(FIELD1 CHAR(2) FOR SBCS DATA NOT NULL,FIELD2 DATE NOT NULL,FIELD3 DECIMAL(7,0) NOT NULL,FIELD4 DECIMAL(7,FIELD5 DECIMAL(3,CONSTRAINT PK_TBFOOT
PRIMARY KEY (FIELD1,FIELD2))
IN DBTEST01.TSFOOT
PARTITION BY SIZE
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO ;
--
COMMIT;
--
CREATE UNIQUE INDEX TEST01.IXFOOTP
ON TEST01.TBFOOT
(FIELD1 ASC,FIELD2 ASC)
USING STOGROUP SGTEST01
PRIQTY 48 SECQTY 48
ERASE NO
FREEPAGE 0 PCTFREE 10
GBPCACHE CHANGED
CLUSTER
COMPRESS NO
INCLUDE NULL KEYS
BUFFERPOOL BP2
CLOSE NO
copY NO
DEFER NO
DEFINE YES
PIECESIZE 2 G;
--
COMMIT;
--
CREATE SYNONYM TBFOOT FOR TEST01.TBFOOT;
--
COMMIT;
--
- 我运行语句来重命名表空间。
RENAME TABLESPACE TSFOOT TO TSFOOT_NEW;
- 我收到以下错误:
ILLEgal SYMBOL "TSFOOT". SOME SYMBOLS THAT MIGHT BE LEgal ARE: . TO. sqlCODE=-104,sqlSTATE=42601,DRIVER=4.19.56
我可以在这里寻求帮助吗? 非常感谢。
解决方法
使用 Db2 时,您在查找文档时必须谨慎。 有 2 个不同的平台:
- Db2(以前称为 Db2 for Linux UNIX 和 Windows)
- Db2 for z/OS
基本上它们具有相同的语法。但是在深入挖掘时会略有不同。经验法则:z/OS 支持的命令少于 Unix/Windows。
就您而言,请查看正确的文档(并创建书签):https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/sqlref/src/tpc/db2z_sql_rename.html
并且您看到在 z/OS 上重命名表空间是不可能的。