Re: Problems with Oracle to MySQL Migration

"Salvatore Baglieri" <[email protected]> Thu, 1 Feb 2007 12:21:42 +0100
Newsgroups gmane.comp.db.mysql.mycc
Message-ID <[email protected]>
On 1/31/07, Salvatore Baglieri <[email protected]> wrote:
>
> Hi all, this is my first email.
>
> I'm trying to migrate from Oracle to MySql using the Migration Toolkit
> (that works with MS SQL Server and Access as source).
>
> But it doesn't work.
>
> 1. Direct Migration
> 2. Oracle Database Server - Thin JDBC Driver using SID
> 3. MySQL Server - 127.0.0.1 and so on...
> 4. Connecting to source database system (it's Oracle8)
>
> Connecting to source database and retrieve schemata names.
> Initializing JDBC driver ...
> Driver class Oracle Thin JDBC Driver using SID
> Opening connection ...
> Connection jdbc:oracle:thin:username/[email protected]:1521:fid1
> Fetching schemata list.
> SELECT USERNAME FROM ALL_USERS ORDER BY USERNAME
> The list of schema names could not be retrieved (error: 0).
> ReverseEngineeringOracle.getSchemata :La lunghezza del tipo รจ superiore al
> valore massimo
> Details:
> oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java
> :125)
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
> oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885)
> oracle.jdbc.driver.T4CMAREngine.buffer2Value (T4CMAREngine.java:2231)
> oracle.jdbc.driver.T4CMAREngine.unmarshalUB2(T4CMAREngine.java:1048)
> oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:112)
> oracle.jdbc.driver.T4CTTIdcb.receive(T4CTTIdcb.java:95)
> oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:591)
> oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:112)
> oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java
> :351)
> oracle.jdbc.driver.OracleStatement.execute_maybe_describe (
> OracleStatement.java:896)
> oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java
> :383)
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
> OracleStatement.java:986)
> oracle.jdbc.driver.OracleStatement.executeQuery (OracleStatement.java
> :1125)
> com.mysql.grt.modules.ReverseEngineeringOracle.getSchemata(
> ReverseEngineeringOracle.java:52)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> java.lang.reflect.Method.invoke(Unknown Source)
> com.mysql.grt.Grt.callModuleFunction(Unknown Source)
>
> What's the matter?
>
> Is there another free tool to migrate from Oracle to MySQL?
>
> Is there a free tool to obtain SQL statements from a Select on Oracle?
>
> Is there a free tool to convert dmp files to SQL Statements or to import
> dmp file into MySQL?
>
> Thanks in advance
>
> ---
> Ing. Salvatore Baglieri
>


Little by little, i'm trying to make it works.

1. I took the file classes102.zip from orant/java/lib folder.
2. I renamed it into ojdbc14.jar
3. I overwrote the original one (it into C:\Programs\MySQL...\lib) with this
one

Now this is the log...

Initializing JDBC driver ...
Driver class Oracle Thin JDBC Driver using SID
Opening connection ...
Connection jdbc:oracle:thin:fidelity/fidelity@xxx:1521:fid1
Initializing JDBC driver ...
Driver class Oracle Thin JDBC Driver using SID
Opening connection ...
Connection jdbc:oracle:thin:fidelity/fidelity@xxx:1521:fid1
Getting version information ...
Initializing JDBC driver ...
Driver class Oracle Thin JDBC Driver using SID
Build simple Oracle datatypes.
Call Oracle stored procedure ANALYZE_SCHEMA for FIDELITY.
CALL DBMS_UTILITY.ANALYZE_SCHEMA(?,  'ESTIMATE', 50, 0, 'FOR TABLE')
The schema could not be reverse engineered (error: 0).
ReverseEngineeringOracle.reverseEngineer :ORA-00900: invalid SQL statement

Details:
oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:181)
oracle.jdbc.ttc7.Oall7.receive(Oall7.java:631)
oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1221)
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:657)
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:770)
oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java
:812)
oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1154)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:1187)
oracle.jdbc.driver.OraclePreparedStatement.execute(
OraclePreparedStatement.java:108)
com.mysql.grt.modules.ReverseEngineeringOracle.reverseEngineer(
ReverseEngineeringOracle.java:121)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.mysql.grt.Grt.callModuleFunction(Unknown Source)


what's the matter? I tried to run that procedure in SQLPlus, but nothing
happen.

I tried also DBBrowser to take SQL Statements from Oralce, but it doens't
work. I click "connect" and nothing appears.