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.结果展示