WSO2 DSS 3.1.1:如何将模式名称传递给查询?

时间:2014-02-13 14:58:45

标签: wso2 wso2dss

我的Oracle数据库中有多个相同的模式,我想为每个传递模式名称作为参数运行类似的报告。这在WSO2中似乎不起作用,所以我该怎么办?

这是我的简单示例:假设我为每个客户组织(CustA,CustB,...)设置了架构/用户,我编写了一个查询来返回用户ID列表及其真实用户名。

假设我已登录为允许访问必要表的报表用户,我可以使用sqlplus运行以下命令从customers_profile表中获取客户A的用户列表:

    select user_name, full_user_name from custa.users_profile;

同时提示输入客户名称,以下内容适用于sqlplus:

    select user_name, full_user_name from &customer..users_profile;

现在,我如何获得与WSO2数据服务类似的东西?以下是我的XML定义,包括一个命名参数:对我不起作用的客户。请有人帮忙吗?感谢。

<data name="UserService">
   <config id="Customer">
      <property name="driverClassName">oracle.jdbc.driver.OracleDriver</property>
      <property name="url">jdbc:oracle:thin:@v103/serena</property>
      <property name="username">wso2</property>
      <property name="password">wso2</property>
   </config>
   <query id="UsersProfile" useConfig="Customer">
      <sql>select user_name, full_user_name from :customer.users_profile</sql>
      <result element="Users" rowName="User">
         <element column="user_name" name="user_name" xsdType="string"/>
         <element column="full_user_name" name="full_user_name" xsdType="string"/>
      </result>
      <param name="customer" sqlType="STRING"/>
   </query>
   <operation name="UsersProfile">
      <call-query href="UsersProfile">
         <with-param name="customer" query-param="customer"/>
      </call-query>
   </operation>
</data>

1 个答案:

答案 0 :(得分:0)

答案是升级到WSO2 DSS 3.1.1并使用QUERY_STRING类型。有关详情,请参阅我的评论。很抱歉浪费每个人的时间!