• "Number" are actually NVARCHAR(768)

    ->SQLServer does that when there is no precision and scale specified in Oracle

    VARCHAR2 columns are returned as NVARCHAR (at least the length is OK)

    ->Depends on the Oracle database characterset which can be unicode like AL32UTF8 (even for varchar)

    DATEs are change to datetime2(7)

    ->Because SQL Server DATETIME starts at January 1, 1753

    You could use TO_NUMBER, CONVERT ... in your OPENQUERY to get the dateformat closer to what SQL Server understands