繁体   English   中英

websphere,SQL1103:在QTEMP中找不到表STVRECONWK的位置24列定义

[英]websphere, SQL1103: Position 24 Column definitions for table STVRECONWK in QTEMP not found

我有一个在SQLRPGLE程序末尾创建并删除的表

     //Delete the temporary table
     shell('DLTF FILE(QTEMP/STVRECONWK)':IGNORE_ERROR);

     // create temporary table
     exec sql
       create table qtemp/stvreconwk (
         sysid integer,
         barcode varchar(100),
         description varchar(100),
         matchflag char(1)
       )
     ;

每当我尝试从WebSphere进行编译时,我都会得到

SQL1103:找不到QTEMP中的表STVRECONWK的位置24列定义。

问题是该表不存在,如果我从终端会话创建表然后进行编译(也从终端),则该表可以工作,因为编译器能够在同一作业中运行时验证该表。

如何在WebSphere中做到这一点?

在QTEMP中创建但仍被编译器作为“外部描述”文件访问的文件,应作为“模型”文件的副本创建。 需要引用外部文件描述的任何程序都应编译为引用应始终存在的“模型”文件。 “模型”为编译器提供了所有必要的属性。 通过覆盖,可以在运行时访问程序的重复项。 “模型”只是文件描述,在编译时位于库列表的库中。

在最新版本的编译器中,不需要重写。 对于RPG,F-spec可以包含EXTDESC()或EXTFILE()关键字,以记录“模型”文件或运行时文件。

在大多数情况下,将使用不同的名称将“模型”复制到QTEMP文件中以避免冲突。

缺省情况下,WebSphere将在新作业中运行每个命令。 您可以在window-> preferences-> iseries-> command执行中更改此设置,并取消选中“批量编译”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM