2013-10-01 5 views
2

в моем требовании Я получаю данные из файла (excel) и вставляю его в базу данных. Но имя таблицы, которое я получаю во время обработки файла на основе некоторой бизнес-логики. Я должен проверить, существует ли таблица с именем, если существует, а затем обновлять ее, а затем создавать и вставлять в нее данные. Можно ли достичь этого требования без пользовательского java-кода, используя студию mule, предоставляемую компонентами или конечными точками? Спасибо заранее.Создание динамической таблицы в потоке мула

ответ

1

Я не думаю, что это возможно со стандартными компонентами.

Говоря, что у вас есть 3 таблицы, которые могут быть сопоставлены тремя xls, вы можете определить три статических элемента данных и называть их определенной логикой на компоненте выбора. Это довольно просто, чтобы проверить, если таблица существует с заводной/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 запрос не поддерживается многожильного компонента Database Mule и в этом случае вы можете использовать Groovy компонент.
Это простой запрос, и вы можете изменить его в соответствии с вашими потребностями и очень полезно создать таблицу, если она не выйдет, и, как вы можете видеть, вы можете использовать команду create table здесь непосредственно в одной строке

Смежные вопросы