我有一个链接到 SQL Server 的 postgres 数据库。我发现您可以使用 OpenQuery 从 Sql Server 端查询 postgres,但我发现的一个警告是,在创建视图时,所有字段都转换为 char,尽管来自 postgres 的实际数据类型。例如,如果您查看下面的查询,userid
是一个 int,并且userlogindate & userlastlogindate
是 postgres 中的日期字段,但是当在 Sql Server 中创建视图时,如果我展开视图旁边的加号,并展开列旁边的加号,所有这些列被列为 char()?
我需要做什么才能使 Sql Server 视图保持与 postgres 设置的相同的字段类型?铸造/转换每一个?
SELECT *
FROM OPENQUERY(LinkedServer,
'Select
userid As "userid"
,userlogin As "userlogin"
,userlogindate As "userlogindate"
,userlastlogindate As "Lastlogindate"
From syscatalog')
我找到了解决方案。以下是我如何实现的: