2013-03-10 12 views
0

我使用形式[32位]版6.0.8.26.0使用主機命令調用的URL與甲骨文參數形成

在一個Oracle表單觸發器我使用的主機命令調用與參數的URL 。我的這部分代碼的下面是一個例子:

HOST('cmd /c start http://localhost/TestServlet?p1=A&p2=B'); 

但瀏覽器調用與被顯示直到&符號並停止輸出網址:

http://localhost/TestServlet?p1=A 

如何獲得任何建議使用host命令從Oracle完整的URL形成

回答

0

您可以%26替代&內部URL

+0

沒有不行,但我發現顯示完整的URL字符串最接近的解決方案是在命令中使用雙引號,但這提供了完整的字符串包括再次引起問題的雙引號。任何建議,將不勝感激 – user2079954 2013-03-10 09:38:16

+0

我發現顯示完整的url字符串最接近的解決方案是在命令中使用雙引號,但它似乎沒有用的url和適合只有字符串s因爲使用此方法是提供給我完整的字符串網址,但包括雙引號,這又成爲一個問題。 'HOST('cmd/c start http:// localhost/TestServlet?p1 = A「&p2 = B''');' 和輸出 'http:// localhost/TestServlet?p1 = A&p2 = B 「' 注意的是雙引號包含在URL 任何建議,可以理解 – user2079954 2013-03-10 09:50:50

+0

**如何逃避URL的符號** – user2079954 2013-03-10 10:20:16

0

&用於分隔命令。因此,我們可以通過20%使用^逃脫&

0

嘗試失去 「CMD/C」。

這爲我工作:

PROCEDURE call_url_from_forms6i(i_user_id   varchar2 
           ,i_section_id  varchar2) is 
    /* http://stackoverflow.com/questions/15320620/using-host-command-to-call-a-url-with-parameters-in-oracle-forms */        
    p_user_id  varchar2(200) := '&P_USER_ID='||nvl(i_user_id,'1'); 
    p_section_id varchar2(200) := '&P_SECTION_ID='||nvl(i_section_id, '0'); 
    p_report_name varchar2(200) := '&report_name=REPNAME'; 
    p_url   varchar2(200) := 'http://website.com/folder/'; 
    v_servlet_name varchar2(200) := 'servletname?'; 
    p_report  varchar2(200) := 'report=REPORT';  
    p_url_hdr  varchar2(200) := p_url||v_servlet_name; 
    p_url_params varchar2(2000); 
    p_url_host_call varchar2(2000); 
BEGIN 
    p_url_params := p_report||p_user_id||p_section_id||p_report_name; 
    --display in browser 
    p_url_host_call := 'start "" "'||p_url_hdr||p_url_params||'"'; 
    host(p_url_host_call); 
EXCEPTION 
    WHEN OTHERS THEN 
    --message('Error running report in browser: '||sqlerrm);pause; 
    return; 
END;