We have secretly been working on the complete database translator for quite some time now - over a year. While our existing tool, Full Convert, efficiently migrates tables, data, indexes and foreign keys, it can’t handle procedures, triggers, views, UDTs and other database objects. This turned out to be a burning issue for many of our (potential) customers who need to have their database logic translated, as well as data. As SQL is a verbose language with loose syntax (one thing can be written in many very different ways), analyzing code turned out to be hard. There are not so many tools for that on the market, for obvious reasons.
So, where are we now? We have written lexical and semantic parsers for MySQL, SQL Server and Oracle - with Firebird, PostgreSQL and others to follow. I can tell you, these grammars are huge! Our semantic parser is very fast, it parses hundreds of thousands lines of code in a few seconds, and gives us perfect in-memory object representation of the SQL commands. We have covered most of the statements in each SQL dialect, and consciously skipped some exotic statements that probably not many people use. People are signing up on our beta tester list daily, and I am happy that you will soon be able to test our long-term effort.
How does it work? You will be able to hand over just a SQL script file, and we analyze all the code, show you all objects in a nice tree list, and you can browse both the original and the translated code easily. You can also modify the translated code by hand and we won’t touch that object’s translation (unless you choose to revert to default). You can even refresh the source at any time without losing your manual tweaks. You can also connect to the live source database and we will fetch a definition for each object - the rest is pretty much the same as if you were working with a script.
For output, you can either create a database creation SQL file, or you can connect to your live target database server and have everything moved over seamlessly and test the code logic.
Sign up for notifications or beta testing here: www.spectralcore.com/sqltranslator/