如何从oracle中捕获soap webservice的XML布尔响应? [英] How to catch XML boolean response of soap webservice from oracle?

查看:93
本文介绍了如何从oracle中捕获soap webservice的XML布尔响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从oracle调用SOAP webService返回xml响应



我试图使用xmlTable来捕获布尔值在这里但我的代码返回解析错误,我无法捕获。任何提示?下面是我的代码:



功能XMLTEST(P_XML VARCHAR2)RETURN VARCHAR2 AS

V_FLAG VARCHAR2(4000);



BEGIN

SELECT P.boolean

INTO V_FLAG

FROM xmltable('/ boolean'

传递xmltype(P_XML)

列boolean VARCHAR2(30)PATH'text()')P;

RETURN V_FLAG;

结束XMLTEST;





请查看此链接预览xml



我尝试过:



以下代码工作正常,并为此结构返回喜欢的动作值



SELECT P.action

INTO V_FLAG

FROM xmltable('/ profile / subject / action'传递xml type(P_XML)

列subject VARCHAR2(30)PATH'text()',

action VARCHAR2(30)PATH'text()',

对象XMLTYPE PATH'对象')P;



返回V_FLAG;

END XMLTEST;

解决方案

解决了,问题在于xmlns =..



函数XMLTEST(P_XML VARCHAR2)RETURN VARCHAR2 AS

V_FLAG VARCHAR2(4000);

V_XML1 VARCHAR2(4000);

V_XML2 VARCHAR2(4000);

V_XML VARCHAR2(4000);

BEGIN

V_XML1:= SUBSTR(P_XML,0,INSTR(P_XML,'xmlns') - 1)||'>';

V_XML2:= SUBSTR(P_XML,INSTR(P_XML,'/ Methods>')+ 10);

V_XML:= V_XML1 || V_XML2;



SELECT P.boolean

INTO V_FLAG

FROM xmltable('/ boolean'传递xmltype(V_XML)

列boolean VARCHAR2(30)PATH'text()')P;



RETURN V_FLAG;



END Xmltest的;

I am calling a SOAP webService from oracle which is returning xml response

I am trying to catch the boolean value using xmlTable as here but my code is returning parsing error which i cannot catch. Any hint? Below is my code:

FUNCTION XMLTEST (P_XML VARCHAR2) RETURN VARCHAR2 AS
V_FLAG VARCHAR2(4000);

BEGIN
SELECT P.boolean
INTO V_FLAG
FROM xmltable('/boolean'
passing xmltype(P_XML)
columns boolean VARCHAR2(30) PATH 'text()') P;
RETURN V_FLAG;
END XMLTEST;


please check this link to preview the xml

What I have tried:

This code below is working fine and returning action value 'like' for this structure

SELECT P.action
INTO V_FLAG
FROM xmltable('/profile/subject/action' passing xmltype(P_XML)
columns subject VARCHAR2(30) PATH 'text()',
action VARCHAR2(30) PATH 'text()',
object XMLTYPE PATH 'object') P;

RETURN V_FLAG;
END XMLTEST;

解决方案

Solved, the problem was with xmlns=".."

FUNCTION XMLTEST (P_XML VARCHAR2) RETURN VARCHAR2 AS
V_FLAG VARCHAR2(4000);
V_XML1 VARCHAR2(4000);
V_XML2 VARCHAR2(4000);
V_XML VARCHAR2(4000);
BEGIN
V_XML1 := SUBSTR(P_XML,0,INSTR(P_XML,'xmlns')-1)||'>';
V_XML2 := SUBSTR(P_XML,INSTR(P_XML,'/Methods">')+10);
V_XML := V_XML1||V_XML2;

SELECT P.boolean
INTO V_FLAG
FROM xmltable('/boolean' passing xmltype(V_XML)
columns boolean VARCHAR2(30) PATH 'text()') P;

RETURN V_FLAG;

END XMLTEST;


这篇关于如何从oracle中捕获soap webservice的XML布尔响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆