2012-07-13 74 views
2

我在apex报告中有一个链接,它将用户带到不同的页面,并将一些值传递到新页面。该按钮被设置为一个URL,因为有被传递了太多的项目,但我不认为那会怎样都无所谓:在Apex的查询字符串中传递冒号

f?p=&APP_ID.:27:&SESSION.::&DEBUG.::P27_1,P27_2,P27_3,P27_4,P27_5:0,#1#,#2#,#3#,#NULL# 

#1#等都是传递列。除了传递的数据通常包含冒号(:),它通过切断冒号后面的新页面项目中的所有内容(包括冒号本身)以及之后搞乱任何领域。例如:#2#中有一个冒号,所以P27_3,4和5将不会被填充值。

我试过用'%3a'(网址编码为冒号)手动替换冒号,但它似乎不起作用。

+0

请参阅https://forums.oracle.com/forums/thread.jspa?threadID=2383833。 – Tebbe 2012-07-13 19:20:42

+0

谢谢!我希望看看是否有一些我缺少的内置工具,但如果没有,我想我可能会使用这种方法。 – Mike 2012-07-13 19:33:30

+0

无论如何,将参数值限制为数字或简单字母字符串可能是一个好主意。您实际需要传递给其他页面的是什么类型的值?另一个想法是在导航到它之前直接设置目标页面项目的值。 – 2012-07-17 07:22:48

回答

0

尝试使用UTL_URL.ESCAPE()来转义URL特殊字符和UTL_URL.UNESCAPE()以使其不能回避。

您也可以尝试APEX_UTIL.URL_ENCODE(),但您需要使用其中一种,即UTL或APEX_UTIL。