Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 在Oracle窗体中使用host命令调用带有参数的url_Forms_Oracle_Host - Fatal编程技术网

Forms 在Oracle窗体中使用host命令调用带有参数的url

Forms 在Oracle窗体中使用host命令调用带有参数的url,forms,oracle,host,Forms,Oracle,Host,我使用的是Forms[32位]版本6.0.8.26.0 在OracleForms触发器中,我使用host命令调用带有参数的url。这部分代码的示例如下: HOST('cmd /c start http://localhost/TestServlet?p1=A&p2=B'); 但浏览器被调用时,输出url将一直显示,直到符号“and”签名并停止: http://localhost/TestServlet?p1=A 关于如何使用oracle forms中的HOST命令获取完整url的任何

我使用的是Forms[32位]版本6.0.8.26.0

在OracleForms触发器中,我使用host命令调用带有参数的url。这部分代码的示例如下:

HOST('cmd /c start http://localhost/TestServlet?p1=A&p2=B');
但浏览器被调用时,输出url将一直显示,直到符号“and”签名并停止:

http://localhost/TestServlet?p1=A

关于如何使用oracle forms中的HOST命令获取完整url的任何建议

您可以将
&
替换为
%26
内部url

&
用于分隔命令。因此,我们可以使用
^
来转义
&

将空格替换为%20,并使用^&

尝试丢失“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;

不,这不起作用,但我发现显示完整url字符串的最接近的解决方案是在命令中使用双引号,但这提供了包含双引号的完整字符串,这又是一个问题。我发现显示完整url字符串的最接近的解决方案是在命令中使用双引号,但它似乎对url没有用处,仅适用于字符串s,因为使用此方法为我提供了完整的字符串url,但其中包括双引号,这又是一个问题<代码>主机('cmd/c starthttp://localhost/TestServlet?p1=A“&p2=B”和输出<代码>http://localhost/TestServlet?p1=A“&p2=B”请注意,URL中包含双引号。任何建议都将受到重视。如何在URL中转义符号?@user2079954-只需键入
HOST('cmd/c starthttp://localhost/TestServlet?p1=A%26p2=B');-这是逃避URL中任何有问题符号的标准方法。它不工作吗?我尝试使用
%26
,但问题是目标servlet没有识别它,但是,我使用转义符号管理了与符号的问题。
^&^
这里的另一个问题是参数包含字符串我用双引号括住了字符串。它可以工作,但双引号正在删除字符串中的内部空格???