从SQL Server到postgresql的DBLink:get sequence nextval

问题描述:

我有一个需要连接到POSTGRESQL 9.0服务器的SQL Server 2008。从SQL Server到postgresql的DBLink:get sequence nextval

一个我需要的任务是在PostgreSQL的

例1获得一个序列的下一个值:

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

错误:

Msg 7215, Level 17, State 1, Line 1 Could not execute statement on remote server 'POSTGRESQL'.*

例2:

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

错误:

Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "MSDASQL" for linked server "POSTGRESQL" reported an error. The provider reported an unexpected catastrophic failure. Msg 7350, Level 16, State 2, Line 1 Cannot get the column information from OLE DB provider "MSDASQL" for linked server "POSTGRESQL".*

任何选项都没有工作!

有没有什么好的选择?

预先感谢您

+0

究竟做 “无工程” 呢?你有错误吗?如果是,从哪个DBMS? –

+0

我对帖子进行了更新。我在SQLSERVER中出现错误。 TIA – galacha

+0

您是否可以使用该连接进行其他查询?这只是你遇到问题的序列吗? – Gary

处理ODBC数据源和Postgres我必须这样做:

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

我试过了,但没有成功! – galacha

也许你的PostgreSQL连接是只读的,你试图执行更新/插入请求?

NEXTVAL更新序列,尝试:

currval(''cadastro.pessoa_seq''::regclass)