今天在编译pld 文件的时候,发生了一个小问题,编译报错了.identifier 'WMS_YMS_INTEGRATION_PVT.GET_YARD_ORG_ID' must be declared@H_403_1@
这个package 是新加的,在pld 文件里面调用了. 由于这个package 是在数据库里面的,没有办法直接拉文件下来,这就比较蛋疼了...@H_403_1@
唯一的办法就是打patch. 现在pld 文件里面找到调用这个package 的地方,看看是在哪个bug 里面加的. 找到bug,去看看谁改的代码. 既然他改的,他应该知道打哪个patch,问一下ok.@H_403_1@
1. 下载下来patch,我们是Linux x86 平台,语言US,放在/var/tmp/Patch 目录下,unzip.@H_403_1@
2. 停掉EBS.@H_403_1@
3. 进入到解压好的文件夹下,就是以patch 号为名字的目录.@H_403_1@
4. 用adadmin 命令进入管理模式.@H_403_1@
5. 输入system 和 apps 的密码,一般是manager 和apps,可能会有改变.@H_403_1@
6. 进入maintenance mode,enable maintenance mode@H_403_1@
7. 然后连续按 Enter 键回到目录下@H_403_1@
8. 用 adpatch driver=uxxx.drv 开始打patch,xxx 是patch号.@H_403_1@
9. 再次输入system 和apps 的密码. 然后就是漫长等待... 等patch打完.@H_403_1@
10. 完成后,再次进入adadmin,取消maintenance mode.@H_403_1@
11. 用sql 查找patch 是不是打成功@H_403_1@
SELECT * FROM ad_applied_patches app WHERE app.patch_name = '14570467'; SELECT * FROM ad_bugs ab WHERE ab.bug_number = '14570467';
然后重现编译 pld,就OK 了.
如果报错缺失的package 是pld 文件中的,就把对应的pll 和plx 放在同一个目录下. 这个可以在$AU_TOP/resource 目录下找到.@H_403_1@