Vi har en applikation byggd i PHP och med en lagom stor MySQL-databas. Jag har blivit ombedd att ta fram en migrationsplan för att eventuellt byta till Oracle.
Jag kan inte ett skit om Oracle så jag vet inte hur den är att jobba med jämfört med MySQL.
Det är en ganska enkel applikation och inte så avancerade frågor:
mysql_num_rows, mysql_result, mysql_query, mysql_field_name m.m.
Är det stor skillnad i syntaxen?
Vad har ni för erfarenhet av liknade jobb?
Vad bör jag tänka på?
Om den som skrivit applikationen inte tänkt på portabiliteten så blir det säkert problem med SQL-frågorna. Mysql verkar inte vara så noga med att följa standard. (Oracle är väl något bättre.)
Några problemområden
- datumhantering
- olika datatyper
- reserverade ord
- dbmsspecifika funktioner
- transaktionshantering
- olika syntax för outer join
Nu har ju Mysql en mer begränsad sql-syntax än Oracle så ur den aspekten är den enklare att flytta från mysql till Oracle än tvärtom.
Om man tittar på driftsmiljö så är Oracle mycket mer komplicerat.
Det handlar om ganska enkla frågor. Inga "outer join" och liknande.
Hur skulle t.ex. detta se ut i fallet Oracle:
$result = mysql_query("SELECT kolumnen1 FROM tabellen WHERE kolumn2='Smurf' ORDER BY kolumn1 DESC");
if (mysql_num_rows($result) == 0){
// Ingen smurf
}else{
// Smurf hittad!
}
... och tilläggas bör även att det finns ett "MySQL to Oracle migration kit", som kanske kan komma till användning vid konvertering av databasen. Vad gäller funktioner och liknande kan jag glatt hänvisa till manualen. Jag har inga siffror, men man kan nog ganska lugnt anta att den oraclespecifika uppsättningen av funktioner är effektivare än odbc.