首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle转换中遍历游标

在Oracle转换中遍历游标
EN

Stack Overflow用户
提问于 2016-10-19 13:43:44
回答 1查看 1.2K关注 0票数 0

我有一个基本的应用程序,从数据库获得贷款产品列表并显示给用户。我编写了一个xsl转换文件,在该文件中,我遍历结果集并将每行添加为Loan。但是最后的列表中充满了相同的对象。

我的composite.xml:

GetLoanProductsBPEL内容:

和Transform1文件内容在GetLoanProductsBPEL组件中:

在数据库中,我有3个贷款产品:

但结果是,我得到了同一个贷款产品的3个实例:

代码语言:javascript
复制
<env:Body>
    <inp1:GetLoanProductsResponse xmlns:inp1="http://xmlns.oracle.com/singleString">
        <inp1:LoanProduct>
            <inp1:Id>1</inp1:Id>
            <inp1:Name>Cash loan</inp1:Name>
            <inp1:MaxAmount>100000</inp1:MaxAmount>
            <inp1:InterestRate>12</inp1:InterestRate>
            <inp1:MaxPeriod>60</inp1:MaxPeriod>
        </inp1:LoanProduct>
        <inp1:LoanProduct>
            <inp1:Id>1</inp1:Id>
            <inp1:Name>Cash loan</inp1:Name>
            <inp1:MaxAmount>100000</inp1:MaxAmount>
            <inp1:InterestRate>12</inp1:InterestRate>
            <inp1:MaxPeriod>60</inp1:MaxPeriod>
        </inp1:LoanProduct>
        <inp1:LoanProduct>
            <inp1:Id>1</inp1:Id>
            <inp1:Name>Cash loan</inp1:Name>
            <inp1:MaxAmount>100000</inp1:MaxAmount>
            <inp1:InterestRate>12</inp1:InterestRate>
            <inp1:MaxPeriod>60</inp1:MaxPeriod>
        </inp1:LoanProduct>
    </inp1:GetLoanProductsResponse>
</env:Body>

当我查看Flow跟踪时,我看到在Invoke中我得到了3条不同的记录,但是在Transform1之后,相同的记录被写了3次。

Invoke1跟踪:

转换后的ReplyOutput:

Transform1 XSLT文件源代码:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<?oracle-xsl-mapper
 <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
 <mapSources>
   <source type="WSDL">
     <schema location="../payments_dwh.wsdl"/>
     <rootElement name="VMbLoanProductsCollection" namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/payments_dwh"/>
   </source>
 </mapSources>
 <mapTargets>
   <target type="WSDL">
     <schema location="../GetLoanProductsBPEL.wsdl"/>
     <rootElement name="processResponse" namespace="http://xmlns.oracle.com/PashaMobileBankingWs/PashaMobileBankingWS/GetLoanProductsBPEL"/>
   </target>
 </mapTargets>
 <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.7.0(build 130301.0647.0008) AT [WED OCT 19 17:41:51 AZST 2016]. -->
  ?>
  <xsl:stylesheet version="1.0"
            xmlns:client="http://xmlns.oracle.com/PashaMobileBankingWs/PashaMobileBankingWS/GetLoanProductsBPEL"
            xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
            xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
            xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/payments_dwh"
            xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
            xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
            xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
            xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
            xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:med="http://schemas.oracle.com/mediator/xpath"
            xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
            xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
            xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
            xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
            xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
            xmlns:ora="http://schemas.oracle.com/xpath/extension"
            xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
            xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/PashaMobileBankingWs/PashaMobileBankingWS/payments_dwh"
            xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
            exclude-result-prefixes="xsi xsl top plt xsd wsdl tns client plnk xp20 bpws mhdr bpel oraext dvm hwf med ids bpm xdk xref ora socket ldap">
 <xsl:template match="/">
   <client:processResponse>
     <xsl:for-each select="/top:VMbLoanProductsCollection/top:VMbLoanProducts">
       <client:LoanProduct>
         <client:Id>
           <xsl:value-of select="top:id"/>
         </client:Id>
         <client:Name>
           <xsl:value-of select="/top:VMbLoanProductsCollection/top:VMbLoanProducts/top:nameAz"/>
         </client:Name>
         <client:MaxAmount>
           <xsl:value-of select="/top:VMbLoanProductsCollection/top:VMbLoanProducts/top:maxAmount"/>
         </client:MaxAmount>
         <client:InterestRate>
           <xsl:value-of select="/top:VMbLoanProductsCollection/top:VMbLoanProducts/top:interestRate"/>
         </client:InterestRate>
         <client:MaxPeriod>
           <xsl:value-of select="/top:VMbLoanProductsCollection/top:VMbLoanProducts/top:maxPeriod"/>
         </client:MaxPeriod>
       </client:LoanProduct>
     </xsl:for-each>
   </client:processResponse>
 </xsl:template>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 06:26:12

快回答,因为我是用手机回复的。从for-each循环中的选择属性中删除/top:VMbLoanProductsCollection/top:VMbLoanProducts/。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40133162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档