【问题标题】:How to get data from nested TYPE object using User defined datatype in wso2dss如何在 wso2dss 中使用用户定义的数据类型从嵌套的 TYPE 对象中获取数据
【发布时间】:2017-06-15 08:02:03
【问题描述】:

我正在尝试使用 wso2dss 中的用户定义数据类型(UDT)从 oracle TYPE 对象中检索数据,部分它正在工作并从中获取数据。 但是,当我配置了 Array 的嵌套 TYPE 对象然后它停止工作时,它可能是映射问题。

场景: 我创建了 4 个 TYPE 对象,它们混合了普通对象和 Array 对象,尝试使用返回 myType4 对象的函数进行访问。此外,没有 Array 一切正常,但是当涉及到 数组,它不能在 wso2dss 中使用索引。我们只能使用索引值访问 UDT 对象,和我使用的一样。

错误:

<faultstring>
DS Fault Message: Error in 'SQLQuery.processStoredProcQuery': DS Fault Message: The array 'myArray1' does not exist DS Code: UNKNOWN_ERROR DS Code: DATABASE_ERROR Source Data Service:- Name: Details Location: /details.dbs Description: N/A Default Namespace: http://ws.wso2.org/dataservice Current Request Name: _getData Current Params: {} Nested Exception:- DS Fault Message: The array 'myArray1' does not exist DS Code: UNKNOWN_ERROR
</faultstring>

SQL:

CREATE OR REPLACE TYPE myType1 IS OBJECT (col1 VARCHAR2(100 CHAR) ,col2 VARCHAR2(2000 CHAR));
    CREATE OR REPLACE TYPE myType2 IS TABLE OF VARCHAR2(1000);
    CREATE OR REPLACE TYPE myType3 IS TABLE OF myType1;
    CREATE OR REPLACE TYPE myType4 is OBJECT(
    col11 VARCHAR2(50),
    col12 myType3,
    col13 myType2);

    CREATE OR REPLACE PACKAGE myPackage IS
        FUNCTION getData RETURN myType4;
    end myPackage;

WSO2DSS DBS 文件:

<data enableBoxcarring="true" name="Data" serviceNamespace="">
<config enableOData="false" id="MYCONFIG">
<property name="carbon_datasource_name">MYCONFIG</property>
</config>
<query id="qDetails" useConfig="MYCONFIG">
<sql>
{call ?:=myPackage.getData();}
</sql>
<result element="MYDetailResponse" rowName="Details">
<element column="MY_T[0]" name="data1" xsdType="string"/> 
<element arrayName="myArray1" column="MY_T[1]" name="datalist1" /> 
<element arrayName="myArray2" column="MY_T[2]" name="datalist2"/>
</result>
<param name="MY_T" ordinal="1" sqlType="STRUCT" structType="MYTYPE4" type="OUT"/>
</query>
<resource method="GET" path="data">
<call-query href="qDetails"/>
</resource>
</data>

请指教?

【问题讨论】:

    标签: java wso2 wso2dss


    【解决方案1】:

    我咨询了 WSO2 团队,DSS 不支持这种情况,但是您可以使用光标来获取列表类型的复杂对象来获取数据

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 2020-09-29
      • 1970-01-01
      • 2018-05-28
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      相关资源
      最近更新 更多