代码之家  ›  专栏  ›  技术社区  ›  kratenko Tinku George

DB2 AS/400:表的不同系统名和10个字符的SQL名称

  •  1
  • kratenko Tinku George  · 技术社区  · 7 年前

    如果在AS/400上创建SQL表(iSeries、System i等)该表获得一个SQL名称(最多128个字符)和一个系统名称(最多10个字符)。如果SQL名称太长,则会生成系统名称。您可以更改sql名称(通过 RENAME TABLE x TO y RENAME TABLE x TO SYSTEM NAME y )独立。

    也就是说,如果SQL名称超过10个字符,您可以这样做。如果是10个字符或更短,系统名称会自动更改,我无法将这两个值更改为10个字符或更少的不同值。

    RENAME TABLE x TO y FOR SYSTEM NAME z RENAME TABLE x TO y1234567890 FOR SYSTEM NAME z 确实有效。

    有办法完成吗?如果有,怎么做?

    如果不是,这也是一个答案——这意味着我实现SQL和物理文件命名方案的唯一方法是使用超长名称,尽管这没有任何意义(也不适用于我的Java实体)。

    2 回复  |  直到 7 年前
        1
  •  3
  •   jmarkmurphy    7 年前

    你不能做你想做的事。

    创建表语法:

    >>-CREATE--+------------+--TABLE--table-name--+-------------------------------------------+-->
               '-OR REPLACE-'                     '-FOR SYSTEM NAME--system-object-identifier-'   
    

    可能会使您的工作更轻松,因为您以后不必重命名表,但仍然:


    指定系统对象标识符时,表名不能是有效的系统对象名。

    因此,如果表名通常是有效的IBM i系统名,则不能使用 FOR SYSTEM NAME .

        2
  •  3
  •   WarrenT    7 年前

    ALIAS 用另一个短名字。