2013-10-01 48 views
2

在我的要求中,我从文件(excel)接收数据并将其插入到数据库中。 但我在基于某些业务逻辑处理文件期间获取的表名。 我应该检查表是否存在与名称,如果存在然后更新它否则创建并插入数据到它。 这个需求是否可以通过使用mule studio提供的组件或端点来实现,而不需要定制java代码? 在此先感谢。在骡流中创建动态表格

回答

1

我不认为这是可能的标准组件。

说你有一个可以通过三种XLS映射3个表,你可以静态地定义三个datamappers并在选择组件调用它们在一定的逻辑关系。 这是非常简单的检查表使用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"); 
} 
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查询不被搁浅骡子数据库组件,并在这种情况下,你可以使用Groovy的组件支持。
这是一个简单的查询,您可以根据自己的需要对其进行修改,如果不存在,创建该表非常有用,正如您所看到的,您可以直接在单行中使用create table命令