适用版本
- 升级前版本[[Oracle APEX19.2]]
- 升级后版本[[Oracle APEX24.2]]
- APEX补丁版本 24.2.4
背景
昨日,我们将一个基于Oracle APEX 19.2的环境成功升级至24.2版本。然而,今日用户反馈称,在使用数据上传导入功能时,数据验证页面出现了布局错位的问题,具体表现为某些元素的位置不正确,但数据是可以正常导入只是显示有问题。以下为问题截图:
对比19.2

问题
经过细致检查,我们发现该页面的列标题是动态生成的。进一步调查后,确认了问题根源在于生成字符串格式的过程中,半角冒号被替换成了全角冒号。具体代码如下所示:

|
|
解决方案
针对此问题,我们考虑了两种解决路径:
- 全局搜索并替换:在应用中全面搜索涉及该字符串的所有位置,并将全角冒号替换为半角冒号。
- 统一调整全局变量:鉴于这是一个全局变量,若能统一进行调整,则更为理想。
通过初步尝试,我们发现将全角冒号替换为半角冒号确实解决了问题。接下来,我们深入探索了第二种方法,即直接修改全局变量。
深入探究
这个变量似乎有点类似共享组件中的快捷方式,检查后无果,又看了下平台视图也没发现对应的信息, AI和bing了一波也没发现好的方向. 只能去扒下数据库中wwv_flow_lang.system_message的代码了.

扒了下平台的代码,也看不到代码详细. 猜测似乎是有表记录着该信息,就是不知道记录的是怎样格式的.

毕竟平台存在一列中多个值拼一起的情况

似乎有创建的API.准备加一个新值测试下,结果报错,由报错信息可见APEX_240200.WWV_FLOW_MESSAGES$_UQ确实有表记录.找到表了接下来就简单了
|
|

|
|

直接来个UPDATE,再验证下该问题是否还在经测试已经修复了.

后续
推测,这个问题可能是由于中文支持导致的字符替换。目前尚不清楚Oracle APEX官方是否会在此后的补丁中修复这一问题。
这是一个脚注 1。
-
参考文献1: ↩︎