从SQL Server到postgresql的DBLink:获取序列nextval

问题描述 投票:0回答:2

我有一个需要连接到POSTGRESQL 9.0服务器的SQL Server 2008。

我需要的任务之一是获取POSTGRESQL上的序列的下一个值

例1:

execute ('select nextval( ''cadastro.pessoa_seq'' )' ) at POSTGRESQL ;

错误:

消息7215,级别17,状态1,行1无法在远程服务器'POSTGRESQL'上执行语句。*

例2:

select * from openquery( POSTGRESQL ,'select nextval( ''cadastro.pessoa_seq'' )')

错误:

消息7399,级别16,状态1,行1链接服务器“POSTGRESQL”的OLE DB提供程序“MSDASQL”报告错误。该提供商报告了意外的灾难性故障。消息7350,级别16,状态2,行1无法从OLE DB提供程序“MSDASQL”获取链接服务器“POSTGRESQL”的列信息。*

这些选项都不起作用!

有什么好的选择吗?

先感谢您

sql-server postgresql rpc dblink
2个回答
1
投票

处理ODBC源和postgres我必须这样做:

nextval(''cadastro.pessoa_seq''::regclass) for it to work 

0
投票

也许您的Postgresql连接是只读的,您是否尝试过执行更新/插入请求?

nextval更新序列,尝试:

currval(''cadastro.pessoa_seq''::regclass)
© www.soinside.com 2019 - 2024. All rights reserved.