首页 > 解决方案 > 使用 SQL,是否可以创建与它所基于的原始文件(PF)具有相同格式级别标识符的全局临时表?

问题描述

程序 A 调用程序 B。我正在基于 Prog B 中的文件 A 创建全局临时表。

我必须打开并读取 Program A 中的临时表。我在 F Spec 中使用了 EXTFILE 操作码来编译 Prog A。

fFILEA   if   e             disk    extfile(wrk_filnam)
f                                      usropn

/free

wrk_filnam = 'QTEMP/TEMP_TABLE'

open FILEA

/end-free

当我返回 Prog A 并打开文件 A 时,我收到级别检查错误,因为临时表是使用新的格式级别标识符创建的。

有解决方法吗?如果我可以使用 CRTDUPOBJ 那就太好了。

标签: ibm-midrangedb2-400rpgle

解决方案


只要您确保与原始记录格式名称相同,sql 语句DECLARE GLOBAL TEMPORARY TABLE tmptable LIKE srctable RCDFMT srcfmt就会tmptable使用相同的格式级别标识符创建。srctablesrcfmt

您是否使用正确的文件进行编译以获得正确的级别标识符?您可以使用DSPPGMREF来找出程序对每个文件的预期级别标识符。


推荐阅读