在我的要求中,我从文件(excel)接收数据并将其插入数据库。 但是我根据一些业务逻辑处理文件时得到的表名。 我应该检查表是否存在名称,如果存在则更新它,否则创建并将数据插入其中。 如果没有使用mule studio提供的组件或端点的自定义Java代码,是否可以实现此要求? 提前谢谢。
答案 0 :(得分: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");
}
答案 1 :(得分: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)
但是,搁浅的Mule数据库组件不支持此if not exists
查询,在这种情况下,您可以使用Groovy组件。
这是一个简单的查询,您可以根据需要对其进行修改,如果不退出则创建表非常有用,如您所见,您可以直接在单行中使用create table命令