DB2 Z/OS - 重命名表空间

DB2 Z/OS - Rename Tablespace

我使用 DB2 Z/OS 11.01。 可以重命名已在 DB2 z/OS 上定义的 table 空间吗? 从文档中我没有看到任何限制,但我看不到。

下面我给大家展示一下我的测试用例:

  1. 我创建了一个 TS,一个 table 和一个索引。
--
  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, 0) NOT NULL,
      FIELD5   DECIMAL(3, 0) NOT NULL,
      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;
-- 
  1. 我运行语句重命名table空间。

RENAME TABLESPACE TSFOOT TO TSFOOT_NEW;

  1. 我收到以下错误:

ILLEGAL SYMBOL "TSFOOT". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: . TO. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.19.56

我可以在这里得到一些帮助吗? 非常感谢。

使用 Db2,您在查找文档时必须谨慎。 有 2 个不同的平台:

  • Db2(以前是 Linux UNIX 和 Windows 的 Db2)
  • Db2 用于 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 上的 table 个空格。