2

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

4

2 回答 2

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");
} 
于 2013-10-04T15:55:52.203 回答
0

或者,您也可以在 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-07-23T06:29:13.687 回答