Rydeen JavaScript Examples.

【PR】当サイトはプロモーションが含まれています。

Copying the extraction results.

// Get script helper instance.
var rydeen = Packages.ext.rydeen.script.ScriptHelper.getInstance();

// Get connection of source.
var srcConn = rydeen.getConnection('MySQL-1');
print('srcConn='+srcConn);

// Get connection of destination.
var dstConn = rydeen.getConnection('PostgreSQL-1');
print('dstConn='+dstConn);

var srcSqlContext = srcConn.getSqlContext();
var dstSqlContext = dstConn.getSqlContext();

var query = 'SELECT * FROM country';
var rs = rydeen.executeSelect(srcConn, query);

// Create table model.
var dstTableName = 'country';
var srcTableModel = rydeen.createModel(rs, dstTableName);
var dstTableModel = rydeen.convertModel(srcSqlContext, srcTableModel ,dstSqlContext);

if (rydeen.existTable(dstConn, dstTableName)) {
  rydeen.dropTable(dstConn, dstTableName);
}

// Create table.
var createTableQuery = rydeen.createCreateTableQuery(dstSqlContext, dstTableModel, false);
print('createTableQuery='+createTableQuery);
rydeen.executeUpdate(dstConn, createTableQuery);

// Copy ResultSet.
var insertedCnt = rydeen.copyResultSet(rs, dstConn, dstTableModel);
dstConn.commit();
print('insertedCnt='+insertedCnt);


srcConn.close(); // omittable
dstConn.close(); // omittable
print('finished.');

Duplicate all tables.

// Get script helper instance.
var rydeen = Packages.ext.rydeen.script.ScriptHelper.getInstance();


/**
 * copyTable
 *
 * @param {SqlConnection} - Source Connection
 * @param {SqlConnection} - Destination connection.
 * @param {String} - tableName
 * @returns {number} - Number of inserted records.
 */
function copyTable(srcConn, dstConn, tableName) {
  var srcSqlContext = srcConn.getSqlContext();
  var dstSqlContext = dstConn.getSqlContext();

  // Create table model.
  var srcTableModel = rydeen.createModel(srcConn, tableName);
  var dstTableModel = rydeen.convertModel(srcSqlContext, srcTableModel ,dstSqlContext);

  if (rydeen.existTable(dstConn, tableName)) {
    rydeen.dropTable(dstConn, tableName);
  }

  // Create table.
  var createTableQuery = rydeen.createCreateTableQuery(dstSqlContext, dstTableModel, false);
  print('createTableQuery='+createTableQuery);
  rydeen.executeUpdate(dstConn, createTableQuery);

  // Execute select query.
  var selectQuery = 'SELECT * FROM ' + tableName;
  print('selectQuery='+selectQuery);
  var rs = rydeen.executeSelect(srcConn, selectQuery);


  print('dstTableModel.indexMap='+dstTableModel.indexMap.values());	
  var iterator = dstTableModel.indexMap.values().iterator();	
  while(iterator.hasNext()) {
    var mmdIndex = iterator.next();
    var createIndexQuery = rydeen.createCreateIndexQuery(dstSqlContext, dstTableModel, mmdIndex);
    print('createIndexQuery='+createIndexQuery);
    rydeen.executeUpdate(dstConn, createIndexQuery);
  }


  // Copy ResultSet.
  return rydeen.copyResultSet(rs, dstConn, dstTableModel);
}


// Get connection of source.
var srcConn = rydeen.getConnection('MySQL-1');
print('srcConn='+srcConn);

// Get connection of destination.
var dstConn = rydeen.getConnection('PostgreSQL-1');
print('dstConn='+dstConn);


tableNameList = rydeen.getTableNameList(srcConn, null);
print("tableNameList.size()="+tableNameList.size());
for (i = 0; i < tableNameList.size(); i++) {
  tableName = tableNameList.get(i);
  insertedCount = copyTable(srcConn, dstConn, tableName);
  dstConn.commit();
  print('tableName='+tableName+' insertedCount='+insertedCount);
}


srcConn.close(); // omittable
dstConn.close(); // omittable
print('finished.');

Rydeen JavaScript API v0.94

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です