Ibm midrange 使用SQL添加列后,如何更新逻辑文件定义

Ibm midrange 使用SQL添加列后,如何更新逻辑文件定义,ibm-midrange,db2-400,Ibm Midrange,Db2 400,我使用SQLALTERTABLE语句向DB2/400V6R1中的表(物理文件)添加了一个新列。我有一个基于该表的逻辑文件,新字段没有出现在其中。有没有一种方法可以在不删除和重新创建逻辑文件的情况下更新该文件?重新编译LF(假设它是用DDS创建的)或执行ALTER视图以在SQL中更新它。重新编译LF(假设它是用DDS创建的)或执行ALTER视图以在SQL中更新它。 您需要重新编译逻辑文件 如果该字段被添加到记录的末尾,那么您可能可以通过关闭该字段的级别检查来逃脱,LVLCHK(*NO)。如果某些程

我使用SQLALTERTABLE语句向DB2/400V6R1中的表(物理文件)添加了一个新列。我有一个基于该表的逻辑文件,新字段没有出现在其中。有没有一种方法可以在不删除和重新创建逻辑文件的情况下更新该文件?

重新编译LF(假设它是用DDS创建的)或执行ALTER视图以在SQL中更新它。

重新编译LF(假设它是用DDS创建的)或执行ALTER视图以在SQL中更新它。

您需要重新编译逻辑文件

如果该字段被添加到记录的末尾,那么您可能可以通过关闭该字段的级别检查来逃脱,
LVLCHK(*NO)
。如果某些程序只用于输入,而不需要新字段,那么这可能会允许您不重新编译它们。这个选项让很多实践者相当紧张,其他人认为它很棒。小心使用。仅通过SQL访问文件的程序可能会被豁免。必须重新编译将逻辑或物理与本机I/O一起使用的所有其他程序

在程序中只使用SQL的一个好处是,所需的重新编译更少

编辑

说清楚-

您需要重新编译引用已更改的物理对象的所有逻辑

您需要重新编译使用本机I/O在物理或任何逻辑中写入或更新记录的任何程序

许多(可能是大多数)会告诉您重新编译只读取文件(PF或LF)的程序

有些人会告诉您,如果只在记录格式的末尾添加新字段,则可能不需要重新编译仅使用本机I/O读取文件的程序。如果执行此操作,您将希望a)仅在即将调用这些程序时使用OVRDBF LVLCHK(*否),然后使用DLTOVR,或者b)创建或更改文件以具有LVLCHK(*否)

两者都有风险。警告:这些特技表演是由专业人士完成的。不要在家里尝试

换句话说,如果您的店铺没有足够的经验来理解和正确处理问题,那么请谨慎行事。肯定如果你不得不问这个问题,你还没到

如果在记录布局的开始或中间添加了新字段,或者更改了任何现有字段的大小或类型,请不要通过!您需要重新编译所有使用该文件的程序。

否。

您需要重新编译逻辑文件

如果该字段被添加到记录的末尾,那么您可能可以通过关闭该字段的级别检查来逃脱,
LVLCHK(*NO)
。如果某些程序只用于输入,而不需要新字段,那么这可能会允许您不重新编译它们。这个选项让很多实践者相当紧张,其他人认为它很棒。小心使用。仅通过SQL访问文件的程序可能会被豁免。必须重新编译将逻辑或物理与本机I/O一起使用的所有其他程序

在程序中只使用SQL的一个好处是,所需的重新编译更少

编辑

说清楚-

您需要重新编译引用已更改的物理对象的所有逻辑

您需要重新编译使用本机I/O在物理或任何逻辑中写入或更新记录的任何程序

许多(可能是大多数)会告诉您重新编译只读取文件(PF或LF)的程序

有些人会告诉您,如果只在记录格式的末尾添加新字段,则可能不需要重新编译仅使用本机I/O读取文件的程序。如果执行此操作,您将希望a)仅在即将调用这些程序时使用OVRDBF LVLCHK(*否),然后使用DLTOVR,或者b)创建或更改文件以具有LVLCHK(*否)

两者都有风险。警告:这些特技表演是由专业人士完成的。不要在家里尝试

换句话说,如果您的店铺没有足够的经验来理解和正确处理问题,那么请谨慎行事。肯定如果你不得不问这个问题,你还没到


如果在记录布局的开始或中间添加了新字段,或者更改了任何现有字段的大小或类型,请不要通过!您将需要重新编译所有使用该文件的程序。

我不知道这是怎么回事-当然,如果您重新编译逻辑文件,它将有一个新的文件级标识符,因此如果您的程序正在检查(可能是这样)除非你也重新编译它们,否则它们下次运行时将得到一个级别检查。我不知道这是怎么回事——当然,如果你重新编译逻辑文件,它将有一个新的文件级别标识符,因此如果你的程序正在检查(它们可能是这样的)除非您也重新编译它们,否则它们将在下次运行时得到级别检查。这涉及删除并重新创建逻辑文件。问题是不这样做能不能完成。我不这么认为。。。您还必须重新编译任何使用LF的本机程序,因为记录格式级别标识符将更改。您不认为重新编译构成(删除和)重新创建LF吗?你为什么这么说?至于需要重新编译程序,请看我的答案。LVLCHK(*否)是一个等待发生的意外。。。长期风险远远超过任何短期利益。FWIW:一个好的变更控制系统将有助于管理文件变更和任何必要的相关对象重新编译(注:我为变更控制供应商工作)。这包括删除和重新创建逻辑文件。问题是不这样做能不能完成。我不这么认为。。。您还必须重新编译任何使用LF的本机程序,因为记录格式级别标识符将更改。您不认为重新编译构成(删除和删除)