none
Oracle to MSSQL Migration Special Characters issue RRS feed

  • Question

  • I'm using SSMA to migrate a database from Oracle to MSSQL. I have a problem with special Characters like ß=ss and also Empty space like "Expression" & "Expression ". While migrating, SSMA recognize that ß = ss and "Expression" is equal "Expression ", and it signals that there are some duplicates. My Question: Is there any configuration which prevent the migration tool from interpreting the string content

    Tuesday, November 19, 2019 9:19 AM

All replies

  • Hi Brauprinz,

    >>While migrating, SSMA recognize that ß = ss and "Expression" is equal "Expression ", and it signals that there are some duplicates.

    SQL Server follows the ANSI/ISO SQL-92 specification on how to compare strings with spaces. The ANSI standard requires padding for the character strings used in comparisons so that their lengths match before comparing them. For example, Transact-SQL considers the strings 'abc' and 'abc ' to be equivalent for most comparison operations. For more details, please refer to How SQL Server Compares Strings with Trailing Spaces.

    In addition, please refer to this similar thread which might help.

    Hope this could help you.

    Best Regards,

    Amelia Gu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, November 20, 2019 3:16 AM
  • I think it's more related to the used collation, wether it's a Windows or a SQL collation. Windows collation treats umlaut like "ß" equal to "ss", as also "ä" equal to "ae", example:

    SELECT CASE WHEN 'ß' COLLATE Latin1_General_CI_AS = 'ss' COLLATE Latin1_General_CI_AS 
                THEN 'Equal' ELSE 'Unequal' END AS AcsentSensitive,
           CASE WHEN 'ß' COLLATE SQL_Latin1_General_CP1_CI_AS = 'ss' COLLATE SQL_Latin1_General_CP1_CI_AS
                THEN 'Equal' ELSE 'Unequal' END AS AcsentInsensitive

    Result: Equal / Unequal


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Wednesday, November 20, 2019 7:11 AM