为清楚起见已编辑:
我已经使用 SQL 在 DB2 中创建了一个表。我现在意识到我不知道创建的物理文件的记录格式,需要一个逻辑文件来定义要在 RPG 代码中使用的键。如何使用 SQL 而不是 DDS 来实现此目的?
这就是我想问的,真的,现在我对这个主题有了更多的了解。
DDS 创建的 PF 和使用 SQL DDL 创建的表之间实际上没有区别。
这两种方法都会生成属性为 PF 的 *FILE 对象。
来自任一方法的结果对象都可以与 SQL 或 RPG 记录级访问 (RLA( 一起使用。
您可以在 DDS 创建的 PF 或 SQL DDL 创建的表上创建 DDS LF 或 SQL 视图/索引。
IBM 提供了为 DDS 创建的对象生成 SQL DDL 的工具,但不是相反。如果您丢失了 DDS 源,您也许可以找到旨在生成 DDS 的第三方工具。
现在的最佳做法是使用 SQL DDL;因为许多最新的数据库增强功能在使用 DDS 时不可用。
例如,如果您认为需要使用DDS与RPG兼容,那么您就错了。 您需要做的就是利用 IBM i 特定的关键字。
而不是
create table my_long_table_name (
my_long_column_name char(10)
);
用
create table my_long_table_name
for system name mytable (
my_long_column_name
for mycol char(10)
) rcdfmt mytabler;