我正在尝试编写一个脚本来编译Oracle 6i应用程序中的所有表单,报表,库和菜单(是的,太旧了),我应该开始维护,但是我得到了菜单,似乎好像frmcmp仍然返回0,尽管没有编译.mmb文件。
要编译表单,例如,我有:
for i in
找到。 -name'* .fmb'| awk -F。 '{print $ 2}'
do
frmcmp userid=user/pass@database batch=yes module=/path$i.fmb module_type=form output_file=/path$i.fmx compile_all=yes window_state=minimize 2> errorcomform.log
if [ ${?} != 0 ]
then
echo -e "${FALLA}FAILED${NORMAL}"
fi
done
这很好用,因为如果编译失败,$ {?}返回1。但如果我尝试:
for i in
找到。 -name'* .mmb'| awk -F。 '{print $ 2}'
do
frmcmp userid=user/pass@database batch=yes module=/path$i.mmb module_type=menu output_file=/path$i.mmx compile_all=yes window_state=minimize 2> errorcomform.log
if [ ${?} != 0 ]
then
echo -e "${FALLA}FAILED${NORMAL}"
fi
done
正如您所看到的,唯一的主要差异是module type=form
的值变为menu
。
此外,errorcomform.log
中没有写任何内容。
要生成错误,我只需抓取任何其他文件(例如.mmx或任何文本文件)并将其更改为.mmb,以便find
找到它。尽管它没有生成.mmx文件,但似乎frmcmp仍然返回0并且没有显示错误消息。
有没有人对此有所了解?由于它是一种过时的技术,谷歌没有给出很多回应。
提前致谢。
答案 0 :(得分:1)
您应该检查是否有.fmx或.mmx或.plx文件。 如果不是这种情况,您可以认为编译失败。
我们也以这种方式使用它并且效果非常好。