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