DB2 AS/400:不同的系统名称和 SQL table 的 10 个字符的名称
DB2 AS/400: Different System Name and SQL Name of 10 chars for table
如果您在 AS/400(iSeries、System i、...)上创建 SQL-table,则 table 会得到 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-实体)。
您可以考虑只用一个短名称创建 table,然后用另一个短名称创建 ALIAS
。
你不能为所欲为。
创建table语法:
>>-CREATE--+------------+--TABLE--table-name--+-------------------------------------------+-->
'-OR REPLACE-' '-FOR SYSTEM NAME--system-object-identifier-'
可能会让您的工作更轻松一些,因为您以后不必重命名 table,但仍然:
FOR SYSTEM NAME system-object-identifier
Identifies the system-object-identifier of the table. system-object-identifier must not be the same as a table, view, alias, or index that already exists at the current server. The system-object-identifier must be an unqualified system identifier.
When system-object-identifier is specified, table-name must not be a valid system object name.
因此,如果 table 名称通常是有效的 IBM i 系统名称,则您不能使用 FOR SYSTEM NAME
。
如果您在 AS/400(iSeries、System i、...)上创建 SQL-table,则 table 会得到 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-实体)。
您可以考虑只用一个短名称创建 table,然后用另一个短名称创建 ALIAS
。
你不能为所欲为。
创建table语法:
>>-CREATE--+------------+--TABLE--table-name--+-------------------------------------------+-->
'-OR REPLACE-' '-FOR SYSTEM NAME--system-object-identifier-'
可能会让您的工作更轻松一些,因为您以后不必重命名 table,但仍然:
FOR SYSTEM NAME system-object-identifier
Identifies the system-object-identifier of the table. system-object-identifier must not be the same as a table, view, alias, or index that already exists at the current server. The system-object-identifier must be an unqualified system identifier. When system-object-identifier is specified, table-name must not be a valid system object name.
因此,如果 table 名称通常是有效的 IBM i 系统名称,则您不能使用 FOR SYSTEM NAME
。