暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何反序列化HTTP POST响应

askTom 2017-11-05
185

问题描述

我收到以下请求 (l_value) 的响应:

<?xml version = "1.0" encoding = "utf-8"?>
<布尔xmlns ="http://tempuri.org/"> false

如何获取布尔值false并将其分配给变量lv_return
httpresp := UTL_HTTP.GET_RESPONSE(httpreq);
  
  BEGIN
    LOOP
      UTL_HTTP.READ_LINE(httpresp, l_value, TRUE);
      DBMS_OUTPUT.PUT_LINE(l_value);
    END LOOP;
    UTL_HTTP.END_RESPONSE(httpresp);
  EXCEPTION
  WHEN OTHERS THEN
    NULL;
  END;
  --return Status

返回lv_return;


专家解答

一点xmltype的工作会有所帮助

SQL> set serverout on
SQL> declare
  2    v varchar2(1000) := 'false';
  3    x xmltype;
  4    c varchar2(20);
  5  begin
  6    x := xmltype(v);
  7    c := x.extract('boolean/text()','xmlns="http://tempuri.org/"').GETSTRINGVAL();
  8    dbms_output.put_line(c);
  9  end;
 10  /
false

PL/SQL procedure successfully completed.


因此,现在它是一个字符串,可以使用所有正常的PL/SQL规则,例如

返回c = 'true';

或者更明确

当c = 'true' 时返回案例,当c = 'false' 时返回true,然后返回false结束;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论