Oracle APEX中如何传递含页面项参数的外部URL?
Oracle APEX外部URL传递页面项参数的解决方法
你遇到的问题是因为静态URL中的绑定变量(:P6_PATIENT_NO、:P6_IMAGE_NO)不会被Oracle APEX自动解析替换为实际值,需要通过动态生成URL的方式来实现参数传递,以下是几种可行方案:
方案1:使用APEX_UTIL.PREPARE_URL函数生成URL
这是最安全可靠的方式,该函数会自动处理绑定变量替换,同时能正确转义特殊字符。在链接的目标设置中,选择PL/SQL动态内容,并输入以下代码:
APEX_UTIL.PREPARE_URL( p_url => 'http://ZERO/?user=epr&password=epr&PatientID=:P6_PATIENT_NO&AccessionNumber=:P6_IMAGE_NO', p_checksum_type => NULL -- 外部URL无需APEX校验和 )
APEX会自动将URL中的:P6_PATIENT_NO和:P6_IMAGE_NO替换为当前页面对应项的实际值。
方案2:直接拼接字符串生成动态URL
如果偏好手动拼接,可直接将页面项的值拼接到URL中,注意必须用APEX_ESCAPE包处理特殊字符,避免URL格式错误或安全问题:
'http://ZERO/?user=epr&password=epr&PatientID=' || APEX_ESCAPE.HTML_ATTRIBUTE(:P6_PATIENT_NO) || '&AccessionNumber=' || APEX_ESCAPE.HTML_ATTRIBUTE(:P6_IMAGE_NO)
将这段代码作为链接的动态目标即可。
方案3:报表/交互式网格中的链接配置
如果是在报表或交互式网格中添加跳转链接,需在链接的目标选项中选择URL,然后在URL输入框中使用上述任意一种动态生成方式(PL/SQL表达式),而非直接填写静态URL。
内容的提问来源于stack exchange,提问作者Ziad Adnan
相关产品推荐
相关产品推荐

