AS400 文件 - 将 PF 和 LF 转换为 SQL

AS400 files - convert PF and LF to SQL

我在 IBM 环境中工作,特别是使用 AS400 机器和 DB2 数据库。
我的下一个任务是将所有可能的文件从 PF 和 LF 转换为 SQL(例如,CREATE TABLE... 和 CREATE VIEW...)。

有没有我做不到的情况?
我知道对于多记录格式文件你不能,是真的吗?

使用 PC 上的 System i Navigator,连接到您的服务器并深入了解数据库和模式。单击表或视图以列出(可能是所有)该库中的 PF 或 LF。然后,右键单击 selections 和 select 'Generate SQL'。我建议选择生成到 'Run SQL scripts'.

结果将是一个 SQL 脚本,其中包含针对所有 selected 对象的 CREATE TABLE 或 CREATE VIEW 语句。大多数相关的 LABEL 语句也将包含在列属性中。您可以将脚本保存到 PC 上的 .SQL 文件或网络共享中。我通常 copy/paste 脚本而不是保存它,但您需要进行试验以了解在您的情况下如何生成行结尾(CR 和 LF)。

一定要查看(并可能测试)各种选项。有些可能更适合你的最终 objective.

至于多格式 LF,自从 SQL 完全可用以来,我认为我从未在我使用过的任何系统上看到过它们。由于没有好的 SQL 等效项,因此不太可能有任何自动化方法。也许有人知道一个模糊的可能性。

如果您的问题涉及 System/36 环境,请编辑您的问题以指明这一点。可能需要许多额外的评论。

是的,有些情况下文件不能'converted to SQL.'
多格式逻辑就是这样一种情况。 程序描述的物理是另一个。 可能还有其他 API 无法生成 DDL 的地方。这听起来好像您正在用其他东西替换 IBM i。请注意,DB2 for i 是与 DB2 LUW 略有不同的方言,并且与 MS SQL Server 或 MySQL 完全不同。将需要进行大量测试以确保数据按预期显示。

是的,一种情况是文件有多个成员。任何 max members 大于 1 的 pf 都会导致问题。您可以使用 dspfd 命令创建包含多个成员的所有 PF 的列表。

dspfd file(*all/*allusr) type(*mbr) output(*outfile) outfile(mylib/myfile)

在 outfile 中搜索 max members > 1。

请看here了解更多信息,我工作的地方称之为 Cruikshanking