1.需求:自动建表将需要的sqlserver任意表迁移到mysql
2.基础信息:
sqlserver数据库:zhc_test
mysql数据库:test
3.整个过程需要2个job,4个trans















4.JAVA代码
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{
Object[] r = getRow();
//本地连接
org.pentaho.di.core.database.DatabaseMeta dbmeta = getTransMeta().findDatabase("zhc_test2");
if(dbmeta!=null)
{
org.pentaho.di.core.database.Database db=new org.pentaho.di.core.database.Database(dbmeta);
try
{
db.connect();
String tablename = getVariable("TABLENAME");
logBasic("开始创建表:" + tablename);
if(tablename!=null && tablename.trim().length()>0)
{
String sql = db.getDDLCreationTable(tablename, data.inputRowMeta);//${TABLENAME}
//sql = sql.replace("TABLE", "TABLE public.");
db.execStatement(sql.replace(";", ""));
logBasic(sql);
}
}
catch(Exception e)
{
logError("创建表出现异常",e);
}finally{
db.disconnect();
}
}
return false;
}
5.结果展示

