Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2数据服务:如何处理返回';未找到数据';?_Wso2_Wso2esb_Wso2dss - Fatal编程技术网

WSO2数据服务:如何处理返回';未找到数据';?

WSO2数据服务:如何处理返回';未找到数据';?,wso2,wso2esb,wso2dss,Wso2,Wso2esb,Wso2dss,我正在Mac OSX 10.7.8上使用WSO2 4.0.3。我已启用数据服务服务器功能(3.2.2) 正在处理数据服务(.dbs文件),该数据服务具有一个存储过程,该存储过程使用oracle ref游标作为out参数。如果存储过程返回数据,则编写的数据服务工作正常,但当存储过程“未找到数据”时,返回的游标为空,因此不返回元素,因此出现以下错误 有没有人能告诉我们如何在WSO2数据服务中处理refcursor上的这个特定场景 “[2013-01-11 10:49:02902]错误-SQLQuer

我正在Mac OSX 10.7.8上使用WSO2 4.0.3。我已启用数据服务服务器功能(3.2.2)

正在处理数据服务(.dbs文件),该数据服务具有一个存储过程,该存储过程使用oracle ref游标作为out参数。如果存储过程返回数据,则编写的数据服务工作正常,但当存储过程“未找到数据”时,返回的游标为空,因此不返回元素,因此出现以下错误

有没有人能告诉我们如何在WSO2数据服务中处理refcursor上的这个特定场景

“[2013-01-11 10:49:02902]错误-SQLQuery DS错误消息:“StaticOutputElement.execute”中有错误,找不到类型为:列名:class的参数 DS代码:参数不兼容\u错误

at org.wso2.carbon.dataservices.core.engine.StaticOutputElement.getParamValue(StaticOutputElement.java:201)
at org.wso2.carbon.dataservices.core.engine.StaticOutputElement.execute(StaticOutputElement.java:239)
at org.wso2.carbon.dataservices.core.engine.OutputElementGroup.execute(OutputElementGroup.java:115)
at org.wso2.carbon.dataservices.core.description.query.Query.writeResultEntry(Query.java:335)
at org.wso2.carbon.dataservices.core.description.query.SQLQuery.processStoredProcQuery(SQLQuery.java:908)
at org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2044)
DS错误消息:“StaticOutputElement.execute”中出错,找不到类型为:列名:class的参数 DS代码:参数不兼容\u错误

at org.wso2.carbon.dataservices.core.engine.StaticOutputElement.getParamValue(StaticOutputElement.java:201)
at org.wso2.carbon.dataservices.core.engine.StaticOutputElement.execute(StaticOutputElement.java:239)
at org.wso2.carbon.dataservices.core.engine.OutputElementGroup.execute(OutputElementGroup.java:115)
at org.wso2.carbon.dataservices.core.description.query.Query.writeResultEntry(Query.java:335)
at org.wso2.carbon.dataservices.core.description.query.SQLQuery.processStoredProcQuery(SQLQuery.java:908)
at org.wso2.carbon.dataservices.core.description.query.SQLQuery.runQuery(SQLQuery.java:2044)
"

这是我编写的.dbs文件

<data  name="dsname">
<config id="datas">
  <property name="carbon_datasource_name">datas</property>
</config>
<query id="procedure_YEAR" useConfig="datas">
  <sql>{callProcdure (?,?,?,?)}</sql>

  <result element="array" rowName="dict" >
  <element name="status" column="out_status" xsdType="xs:string" />
   <element name="error_desc" column="out_error_desc" xsdType="xs:string" />
    <element name="class" column="class" xsdType="xs:string" />
    <element name="org" column="org" xsdType="xs:string" />
    <element name="year" column="year" xsdType="xs:number" />
    <element name="week_yr" column="week_yr" xsdType="xs:number" />
  </result>
  <param name="in_year1" sqlType="INTEGER" type="IN"  />
  <param name="out_status" sqlType="STRING" type="OUT"  />
  <param name="out_error_desc" sqlType="STRING" type="OUT" />
  <param name="result" sqlType="ORACLE_REF_CURSOR" type="INOUT" />
<!--  <param name="class" sqlType="STRING" type="INOUT" />
  <param name="org" sqlType="STRING" type="INOUT"  />
  <param name="year" sqlType="INTEGER" type="INOUT"  />
  <param name="week_yr" sqlType="INTEGER" type="INOUT"  />
  <param name="bill_amount" sqlType="INTEGER" type="INOUT"  />
  <param name="bill_unit" sqlType="INTEGER" type="INOUT"  />
  <param name="yoy" sqlType="INTEGER" type="INOUT"  />-->

 </query>
 <operation name="YEAR_op">
  <call-query href="procedure_YEAR">
     <with-param name="in_year1" query-param="in_year1" />
   </call-query>
 </operation>
</data>

数据
{callprodure(?,?,?)}

对于DSS 3.0.0及更高版本,您可以为值不确定的结果元素设置optional=“true”。因此,对于从数据库的结果元素定义中的REF_CURSOR set optional=“true”返回的元素

例:



可能是拼写吗?callprodure=callProcedure

感谢您的回复!但是这个答案似乎不起作用,它仍然显示出同样的错误。它仍然会在结果中检查参数的兼容性此修复包含在Data Service 4.0.2功能中。谢谢!然后我需要尝试使用该版本的DS。我正在使用启用了DS 3.2.2的WSO2 ESB 4.0.3。我在DS版本4.0.2中找不到最新版本,因为可用的jar是“org.wso2.carbon.core-3.2.3”。DS版本4.0.2是否可下载?如何在ESB中启用此版本的DS?这在ESB 4.5.1中是否可用?对于ESB 4.5.1,可以安装4.0.2功能。