Unicode script output with dbForge Schema Compare
Posted: Thu 08 Sep 2011 21:12
I'm evaluating the use of this product with Version 2.0.77 (latest at this time).
When running thru the command line, the sync script it generates is being created
in UTF-16 Little Endian encoding instead of ASCII.
My target database is oracle 11gR2 in a Linux 64bit server.
Both databases being compared have an NLS_CHARACTERSET value of WE8ISO8859P1.
My client system is running
Windows XP with the matching full oracle client (11gR2). The client (windows) NLS_LANG value
(from the registry) is: AMERICAN_AMERICA.WE8MSWIN1252. This is not being overwritten
by an environment variable.
The command line statement used to generate the comparison script is the following:
"C:\Program Files\Devart\dbForge Schema Compare for Oracle\schemacompare.com" /schemacompare /IgnoreForeignKeys:No /UseSchemaNamePrefix:Yes /IgnorePermissions:No /IsForceCreateObjects:No /RebuildSequences:No /PurgeRecycleBin:No /IgnoreCase:No /IgnoreComments:No /IgnoreWhiteSpace:Yes /IgnoreCommentObjects:No /IgnoreInvalidObjectsFromSource:No /IgnorePartitions:No /IgnoreTablespaces:No /IgnorePhysicalAttributes:No /IgnoreStorageClause:No /EnableTableLock:No /IgnoreColumnDefaultValues:No /IsCompareWrappedVsUnwrapped:No /EnableNoValidate:No /AddRecompileDependantsScript:No /IgnoreConstraintsNames:No /ForceColumnOrder:No /PurgeRecycleBin:No /RestoreSessionParameters:No /UseSchemaNamePrefix:No /ExcludeDependencies:No /source connection:"User Id=abc;Password=;Server=DEV;Pooling=False" /target connection:"User Id=abc;Password=;Server=UAT;Pooling=False" /schemas:abc,abc /Sync:"..\abc\abc_dev_to_uat_sync.sql" /log:"..\abc\abc_dev_to_uat_sync.log"
I also tried the direct connection equivalent:
"C:\Program Files\Devart\dbForge Schema Compare for Oracle\schemacompare.com" /schemacompare /IgnoreForeignKeys:No /UseSchemaNamePrefix:Yes /IgnorePermissions:No /IsForceCreateObjects:No /RebuildSequences:No /PurgeRecycleBin:No /IgnoreCase:No /IgnoreComments:No /IgnoreWhiteSpace:Yes /IgnoreCommentObjects:No /IgnoreInvalidObjectsFromSource:No /IgnorePartitions:No /IgnoreTablespaces:No /IgnorePhysicalAttributes:No /IgnoreStorageClause:No /EnableTableLock:No /IgnoreColumnDefaultValues:No /IsCompareWrappedVsUnwrapped:No /EnableNoValidate:No /AddRecompileDependantsScript:No /IgnoreConstraintsNames:No /ForceColumnOrder:No /PurgeRecycleBin:No /RestoreSessionParameters:No /UseSchemaNamePrefix:No /ExcludeDependencies:No /source connection:"User Id=abc;Password=;Server=;Pooling=False;Direct=True;Sid=DEV;Port=1521;Unicode=False" /target connection:\User Id=abc;Password=;Server=;Pooling=False;Direct=True;Sid=UAT;Port=1522;Unicode=False /schemas:abc,abc /Sync:"..\abc\abc_dev_to_uat_sync.sql" /log:"..\abc\abc_dev_to_uat_sync.log"
Regardless of whether I specified Unicode=False or left out the parameter, the results where the same.
The resulting encoded sync file fails within sql because of the UTF-16 encoding:
SP2-0042: unknown command " ¦ " - rest of line ignored.
When running thru the command line, the sync script it generates is being created
in UTF-16 Little Endian encoding instead of ASCII.
My target database is oracle 11gR2 in a Linux 64bit server.
Both databases being compared have an NLS_CHARACTERSET value of WE8ISO8859P1.
My client system is running
Windows XP with the matching full oracle client (11gR2). The client (windows) NLS_LANG value
(from the registry) is: AMERICAN_AMERICA.WE8MSWIN1252. This is not being overwritten
by an environment variable.
The command line statement used to generate the comparison script is the following:
"C:\Program Files\Devart\dbForge Schema Compare for Oracle\schemacompare.com" /schemacompare /IgnoreForeignKeys:No /UseSchemaNamePrefix:Yes /IgnorePermissions:No /IsForceCreateObjects:No /RebuildSequences:No /PurgeRecycleBin:No /IgnoreCase:No /IgnoreComments:No /IgnoreWhiteSpace:Yes /IgnoreCommentObjects:No /IgnoreInvalidObjectsFromSource:No /IgnorePartitions:No /IgnoreTablespaces:No /IgnorePhysicalAttributes:No /IgnoreStorageClause:No /EnableTableLock:No /IgnoreColumnDefaultValues:No /IsCompareWrappedVsUnwrapped:No /EnableNoValidate:No /AddRecompileDependantsScript:No /IgnoreConstraintsNames:No /ForceColumnOrder:No /PurgeRecycleBin:No /RestoreSessionParameters:No /UseSchemaNamePrefix:No /ExcludeDependencies:No /source connection:"User Id=abc;Password=;Server=DEV;Pooling=False" /target connection:"User Id=abc;Password=;Server=UAT;Pooling=False" /schemas:abc,abc /Sync:"..\abc\abc_dev_to_uat_sync.sql" /log:"..\abc\abc_dev_to_uat_sync.log"
I also tried the direct connection equivalent:
"C:\Program Files\Devart\dbForge Schema Compare for Oracle\schemacompare.com" /schemacompare /IgnoreForeignKeys:No /UseSchemaNamePrefix:Yes /IgnorePermissions:No /IsForceCreateObjects:No /RebuildSequences:No /PurgeRecycleBin:No /IgnoreCase:No /IgnoreComments:No /IgnoreWhiteSpace:Yes /IgnoreCommentObjects:No /IgnoreInvalidObjectsFromSource:No /IgnorePartitions:No /IgnoreTablespaces:No /IgnorePhysicalAttributes:No /IgnoreStorageClause:No /EnableTableLock:No /IgnoreColumnDefaultValues:No /IsCompareWrappedVsUnwrapped:No /EnableNoValidate:No /AddRecompileDependantsScript:No /IgnoreConstraintsNames:No /ForceColumnOrder:No /PurgeRecycleBin:No /RestoreSessionParameters:No /UseSchemaNamePrefix:No /ExcludeDependencies:No /source connection:"User Id=abc;Password=;Server=;Pooling=False;Direct=True;Sid=DEV;Port=1521;Unicode=False" /target connection:\User Id=abc;Password=;Server=;Pooling=False;Direct=True;Sid=UAT;Port=1522;Unicode=False /schemas:abc,abc /Sync:"..\abc\abc_dev_to_uat_sync.sql" /log:"..\abc\abc_dev_to_uat_sync.log"
Regardless of whether I specified Unicode=False or left out the parameter, the results where the same.
The resulting encoded sync file fails within sql because of the UTF-16 encoding:
SP2-0042: unknown command " ¦ " - rest of line ignored.