"x FOR y" 在 DB2 的列定义中创建 table 语句
"x FOR y" in column definition of DB2 create table statement
这是 DB2 create table
语句:
CREATE TABLE SCHEMA_F.TABLE_A (
LEAFDESCRIPTION FOR F7UY2 CHAR(10) CCSID 1141 NOT NULL WITH DEFAULT
...
LEAFDESCRIPTION FOR F7UY2
到底是什么意思?
tl;博士
它允许您指定 i 和一些系统实用程序上(较旧的)RPG 程序可用的简称。在这种情况下,LeafDescription
是可从 SQL 中使用的长名称,而 F7UY2
可在 RPG 等内部使用(和 SQL,但出于显而易见的原因通常首选长名称) .
It's part of the system-specific behavior available on the i.
看,i(iSeries、Systemi、AS/400)最初是一台非常不同的机器。几十年前,在 SQL 真正成为一件事之前。当时,字段和 table 名称被限制在 6 个字符左右,编写程序时考虑到了这一点。
现在,快进到 SQL 出现的时间。在 i 上,DB2 SQL 在现有文件系统之上进行了改造(某种程度上)。这意味着,除其他外,您可以使用 SQL 查询现有文件,而无需 重新创建或重新填充它们。
不幸的是,这也意味着他们只能使用原始的、半神秘的名称,部分原因是您仍然拥有所有原始的 程序。如果您通过 SQL 创建(或重新创建,视情况而定)一个 table,RPG 程序无法引用它。因此,这允许您指定一个名称 可以 引用 - 这意味着您可以切换到基于 SQL 的 tables(它有一些额外的,新的,优点) 而无需更改您的程序。即使在最近版本的 RPG 中取消了名称长度限制,避免一次重命名所有内容的能力也是一个福音。
这是 DB2 create table
语句:
CREATE TABLE SCHEMA_F.TABLE_A (
LEAFDESCRIPTION FOR F7UY2 CHAR(10) CCSID 1141 NOT NULL WITH DEFAULT
...
LEAFDESCRIPTION FOR F7UY2
到底是什么意思?
tl;博士
它允许您指定 i 和一些系统实用程序上(较旧的)RPG 程序可用的简称。在这种情况下,LeafDescription
是可从 SQL 中使用的长名称,而 F7UY2
可在 RPG 等内部使用(和 SQL,但出于显而易见的原因通常首选长名称) .
It's part of the system-specific behavior available on the i.
看,i(iSeries、Systemi、AS/400)最初是一台非常不同的机器。几十年前,在 SQL 真正成为一件事之前。当时,字段和 table 名称被限制在 6 个字符左右,编写程序时考虑到了这一点。
现在,快进到 SQL 出现的时间。在 i 上,DB2 SQL 在现有文件系统之上进行了改造(某种程度上)。这意味着,除其他外,您可以使用 SQL 查询现有文件,而无需 重新创建或重新填充它们。
不幸的是,这也意味着他们只能使用原始的、半神秘的名称,部分原因是您仍然拥有所有原始的 程序。如果您通过 SQL 创建(或重新创建,视情况而定)一个 table,RPG 程序无法引用它。因此,这允许您指定一个名称 可以 引用 - 这意味着您可以切换到基于 SQL 的 tables(它有一些额外的,新的,优点) 而无需更改您的程序。即使在最近版本的 RPG 中取消了名称长度限制,避免一次重命名所有内容的能力也是一个福音。