You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by "Markus Windhager (JIRA)" <ji...@apache.org> on 2007/12/03 08:58:43 UTC

[jira] Created: (DDLUTILS-187) Invalid Type-Mapping: Oracle VARCHAR2(4000) --> MySQL VARCHAR(4000)

Invalid Type-Mapping: Oracle VARCHAR2(4000) --> MySQL VARCHAR(4000)
-------------------------------------------------------------------

                 Key: DDLUTILS-187
                 URL: https://issues.apache.org/jira/browse/DDLUTILS-187
             Project: DdlUtils
          Issue Type: Bug
          Components: Core (No specific database)
    Affects Versions: 1.0
         Environment: WinXP, Eclipse 3.2, Oracle 9g, MySQL 5.0.45, DDLUtils 1.0
            Reporter: Markus Windhager
            Assignee: Thomas Dudziak


I've got two databases: one Oracle and one MySQL.
Let's assume that the Oracle DB contains the following Table: MyTestTable ( MyTestColumn VARCHAR2(4000) )
The MySQL Database is empty.

If I create a alterDatabase sql script, DDLUtils maps the VARCHAR2(4000) column from Oracle
to a VARCHAR(4000) column in MySQL, which is not correct.

Shouldn't the datatype comparison honor the different maximum datatype sizes?

My Code:

		final DataSource masterDs = ...; // DataSource to Oracle database
		final DataSource clientDs = ...; // DataSource to MySQL database
		
		final Platform masterPlatform = PlatformFactory.createNewPlatformInstance(masterDs);
		final Platform clientPlatform = PlatformFactory.createNewPlatformInstance(clientDs);
		
		final Database masterDb = masterPlatform.readModelFromDatabase(null, null, null, new String[] {"TABLE"});
		final Database clientDb = clientPlatform.readModelFromDatabase(null, null, null, new String[] {"TABLE"});
		
		final PrintWriter out = new PrintWriter(new FileOutputStream(new File("out/master2client.sql")));
		try
		{
			clientPlatform.getSqlBuilder().setWriter(out);
			clientPlatform.getSqlBuilder().alterDatabase(clientDb, masterDb, null);
		}
		finally
		{
			out.close();
		}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.