Yo uso algo así
Código PHP:
Ver original<?php
$oci = new PDO('oci:dbname=dbOracle;', 'user', 'pass');
$mysql = new PDO('mysql:host=localhost;dbname=dbMysql', 'user', 'pass');
$mysql->beginTransaction();
$rowsAffected = $mysql->exec('TRUNCATE TABLE tabla');
foreach($oci->query('SELECT * FROM TABLE', PDO::FETCH_ASSOC) as $r){
$insert = $mysql->prepare('INSERT INTO tabla VALUES(null, ?)');
$insert->bindParam(1, $r['COLUMNA'], PDO::PARAM_STR);
$insert->execute();
}
if($mysql == true){
$mysql->commit();
}else{
$mysql->rollback();
}
La idea es usar
beginTransaction y luego
commit o
rollback