【问题标题】:Dynamic table creation in mule flow骡流中的动态表创建
【发布时间】:2015-07-23 14:29:13
【问题描述】:

在我的要求中,我从文件(excel)接收数据并将其插入数据库。 但是我在基于某些业务逻辑处理文件的过程中得到的表名。 我应该检查该表是否存在名称,如果存在则更新它,否则创建并将数据插入其中。 是否可以使用 mule studio 提供的组件或端点在没有自定义 Java 代码的情况下实现此要求? 提前致谢。

【问题讨论】:

    标签: mule mule-studio


    【解决方案1】:

    我认为标准组件不可能。

    假设您有 3 个可以由三个 xls 映射的表,您可以静态定义三个数据映射器,并根据选择组件上的某些逻辑调用它们。 使用 groovy/java 检查表是否存在非常简单,例如您可以使用:

    java.sql.DatabaseMetaData dbm = con.getMetaData();
                rs = dbm.getTables(null, null, "TableName", null);
                if (rs.next()) {
                    System.out.println("TableName found");
                }else{
                    System.out.println("TableName NOT found");
    } 
    

    【讨论】:

      【解决方案2】:

      或者,您也可以在 Groovy 脚本中使用以下查询来检查数据库是否存在,如果不存在则创建它:-

      if not exists (select * from sysobjects where name='YourTableName' and xtype='U')create table YourTableName(ID int NOT NULL, NAME varchar(50) NULL,AGE int NULL,DESIGNATION varchar(50) NULL)
      

      但是,这个if not exists 查询不受搁浅的 Mule 数据库组件支持,在这种情况下,您可以使用 Groovy 组件。
      这是一个简单的查询,您可以根据需要对其进行修改,如果它不退出,对于创建表非常有用,并且如您所见,您可以在此处直接在单行中使用 create table 命令

      【讨论】:

        猜你喜欢
        • 2015-02-01
        • 2021-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多