如何从oracle中捕获soap webservice的XML布尔响应? [英] How to catch XML boolean response of soap webservice from oracle?
问题描述
我从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屋!