IBM iSeries AS/400 via Linked Server, Inserts a Bracket "}" When Numeric Column Not Explicitly Listed

  • I'm migrating a production database from one server to another and upgrading from SQL Server 2012 to 2016. I have everything setup the same, iSeries v5r4 client, 64 bit ODBC. Recreating the MSDASQL linked server gives errors so I switched to IBMDA400 (allow inprocess). I can SELECT, DELETE, UPDATE AND INSERT just fine. However, after looking at the raw data on AS400 I noticed that when I insert and exclude a numeric column from the list, a bracket "}" is inserted into column instead of 0. 
    The columns are numeric not null default 0. For instance, 
    AS400table
    (ColA character,
    ColB numeric not null default 0,
    ColC numeric)

    INSERT INTO LSERVER.MINE.LIBRARY.AS400table
    (ColA, ColC) Values ('abc', 123)

    Record contains
    ColA = 'abc'
    ColB = }
    ColC = 123

    This is new behavior and the same procedure works correctly on old server:
    Microsoft SQL Server 2012 (SP3-GDR) (KB4019092) - 11.0.6251.0 (X64) Jul 7 2017 07:14:24 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

    New server: 
    Microsoft SQL Server 2016 (SP1-CU8) (KB4077064) - 13.0.4474.0 (X64) Feb 24 2018 13:53:17 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)

    I'm perplexed and wasting too much time. Any insight would be greatly appreciated!
    Thank you

Viewing 0 posts

You must be logged in to reply to this topic. Login to reply