升级CLP38至IBM i 7.4时SAVOBJ命令LOC参数报错求助
解决SAVOBJ命令LOC参数弃用问题
问题原因
LOC参数是旧版OS/400(V3R8及更早版本)中SAVOBJ命令的专属参数,在IBM i 7.4等新版本系统中已被移除,因此编译CLLE程序时会触发参数无效的报错。
替代方案
原代码里LOC(&SAVOPT *SEARCH)的作用是指定对象的搜索范围,在新版IBM i中,这一逻辑可以通过以下方式替代:
- 若
&SAVOPT指向特定库或库列表,直接通过LIB参数定义即可,无需额外参数。 - 要是需要搜索当前库列表中的对象,新版SAVOBJ默认支持该逻辑——只要将
LIB参数设为*LIBL,命令就会自动遍历库列表查找目标对象。
修改后的示例代码
基础版本(指定目标库):
SAVOBJ OBJ(&NAME) LIB(&TOOBJLIB) OBJTYPE(&OBJTYPE)
实现原*SEARCH搜索逻辑的版本:
SAVOBJ OBJ(&NAME) LIB(*LIBL) OBJTYPE(&OBJTYPE)
补充说明
IBM i 7.4的SAVOBJ命令已将LOC参数的功能整合到LIB参数与默认行为中。若需确认命令的详细参数规则,可直接在系统中执行SAVOBJ后按F1查看内置帮助文档。
内容的提问来源于stack exchange,提问作者Anders Metnik
相关产品推荐
相关产品推荐

