You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I am using the ODBC 17.00.0004 to read data from a postgres 17 database from a SQLServer 2022. Everyting works as expected (after setting the search_path to the proper schema) and I can read the data using
SELECT * FROM PGDATABASE...issues
The problem is with one of the columns for issues called description that is the type text on the postgres side.
I get this error message
Msg 7347, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' for linked server 'PGDATABASE' returned data that does not match expected data length for column '[PGDATABASE]...[issues].description'. The (maximum) expected data length is 8000, while the returned data length is 12070.
Possible fix 1
The most promising solution seems to be to configure the Max LongVarChar value in the ODBC to a value greater than 12070. I tried setting it to 32000 but the message remains the same.
Some references here
Possible fix 2
Another solution that's partial would be to truncate the extra elements so the limit i always respected, as explained here
SELECT
field1,
field2, ...
CAST(description AS varchar(7900)) AS description,
...
FROM PGDATABASE...issues
Questions
So my question would be:
Is this attribute the one I have to modify (I already have marked the Text as LongVarChar)
Is there anything to be done on the sqlserver side to reload the values for the odbc settings?
HI @davecramer it's strange because even when it's not a cryptic error there's not much information on the internet. I'll try to update the issue with more links and information.
The (maximum) expected data length is 8000, while the returned data length is 12070
Wild guess: Are you saving utf-8 in there? If I remember correctly postgres counts characters, while sqlserver counts bytes. So if you have multi byte utf-8 characters in your description, postgres count them as one character, but sqlserver as up to 4. I could imagine that this causes your error.
Activity
davecramer commentedon Dec 15, 2025
Sorry, I don't know the answer to this question
aseques commentedon Dec 15, 2025
HI @davecramer it's strange because even when it's not a cryptic error there's not much information on the internet. I'll try to update the issue with more links and information.
autoantwort commentedon Jul 14, 2026
Wild guess: Are you saving utf-8 in there? If I remember correctly postgres counts characters, while sqlserver counts bytes. So if you have multi byte utf-8 characters in your description, postgres count them as one character, but sqlserver as up to 4. I could imagine that this causes your error.