2013-03-10 3 views
0

Я использую форму [32 бит] Версию 6.0.8.26.0Использования команды хоста для вызова URL с параметрами в Oracle формирует

в пределах Oracle Forms триггера Я использую команду хоста для вызова URL с параметрами , Примером этой части моего кода ниже:

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

но браузер вызывается с выходом URL, который показывает до знака амперсанд и останавливается:

http://localhost/TestServlet?p1=A 

Любые предложения о том, как получить полный URL с помощью команды HOST от оракула формы

ответ

0

Вы можете заменить & с %26 внутри URL

+0

Нет, что не работает, но я нашел самое близкое решение для отображения полной строки URL-адреса является использование двойных кавычек в команде, но обеспечивая полную строку включая двойные кавычки, что снова создает проблему. Любые предложения будут оценены – user2079954

+0

Я нашел самое близкое решение для отображения полной строки url - это использование двойных кавычек в команде, но, похоже, это не полезно для URL-адреса и подходит только для строк. Используя этот метод, я предоставляю полную строку url, но это включает двойные кавычки, что снова создает проблему. 'HOST ('cmd/c start http: // localhost/TestServlet? P1 = A" & p2 = B "');' и вывод 'http: // localhost/TestServlet? P1 = A" & p2 = B «' Обратите внимание, что двойные кавычки включены в URL Любые предложения будут оценены – user2079954

+0

** Как избежать амперсанд в URL ** – user2079954

0

& используется для разделения команд. Поэтому мы можем использовать ^ избежать &

0

заменить пробелы на% 20 и использовать^&

0

Попробуйте потерять "CMD/с".

Это работает для меня:

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;