我有一个名为MSTCUSTOMERPROFILE的表有一个BLOL类型的列ROLELIST。现在这个BLOB有xml格式的数据,例如数据......
<RoleListDTO>
<rolelist>
<RoleDTO>
<idEntity/>
<idEntityDesc/>
<userType>ECU</userType>
<userTypeDesc/>
<idRole>5</idRole>
<description>02A ENQUIRIES - ACCOUNT INFORMATION</description>
<idChannel>01</idChannel>
<idChannelDesc/>
<token/>
<datCreated/>
<createdBy/>
<datLastUpdated/>
<isDefaultRole>false</isDefaultRole>
<isDisplayCustProfile>false</isDisplayCustProfile>
<idcust/>
<typecust/>
<roleCreatebyUser>
<ListUserDTO>
<idEntity/>
<idEntityDesc/>
<userType/>
<userTypeDesc/>
<idChannel/>
<idChannelGroup/>
<idChannelDesc/>
<firstName/>
<lastName/>
<idChannelUser/>
<salutation/>
<idUser/>
<email/>
<isActive/>
<isProxyLocked/>
<isGroupFlag/>
<lockReason/>
<actDeactReason/>
</ListUserDTO>
</roleCreatebyUser>
</RoleDTO>
<RoleDTO>
<idEntity/>
<idEntityDesc/>
<userType>ECU</userType>
<userTypeDesc/>
<idRole>88</idRole>
<description>02C ENQUIRIES - CREDIT CARD DETAILS</description>
<idChannel>01</idChannel>
<idChannelDesc/>
<token/>
<datCreated/>
<createdBy/>
<datLastUpdated/>
<isDefaultRole>false</isDefaultRole>
<isDisplayCustProfile>false</isDisplayCustProfile>
<idcust/>
<typecust/>
<roleCreatebyUser>
<ListUserDTO>
<idEntity/>
<idEntityDesc/>
<userType/>
<userTypeDesc/>
<idChannel/>
<idChannelGroup/>
<idChannelDesc/>
<firstName/>
<lastName/>
<idChannelUser/>
<salutation/>
<idUser/>
<email/>
<isActive/>
<isProxyLocked/>
<isGroupFlag/>
<lockReason/>
<actDeactReason/>
</ListUserDTO>
</roleCreatebyUser>
</RoleDTO>
</rolelist>
<rmemail/>
</RoleListDTO>
我想获取blob中<idRole>
标记内的数据,在这种情况下它是88,即我想要获取的结果。
我需要通过select查询来执行此操作,是否可以在Oracle数据库中执行此操作。怎么??
答案 0 :(得分:0)
查看XML函数doc:https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions002.htm#SQLRF51184
像EXTRACTVALUE
之类的东西答案 1 :(得分:0)
我有一个解决方法基本上我想根据xml中的节点中的值做一些逻辑,这个值恰好在这个blob中,并且想要在java中。所以我将java中的blob读入一个字节数组,制作了一个DTO,一个完全具有与xml和节点相同的细节和属性的java类,并使用DTO解组逻辑填充它,传递字节数组和所有。
所以基本上我做了一个解决方法,它确实不是我正在寻找的答案,但它的工作原理。