PostGIS와 MSSQL 데이터베이스를 동기화하려고합니다. coords, projection 및 기타 필요한 데이터가있는 MSSQL 뷰가 있습니다. PostGIS보기에 삽입하고 기하학을 만들고보기의 규칙으로 데이터를 변환하려고합니다. MSSQL에서 링크 된 포스트에 삽입 됨 'pos_newload의 positioning_load가 실패했습니다'
내가 필요한 모든 물건을 만들었지 만 (using insert into linked server
또는
insert into openquery
에 대한 동일) MSSQL에서 삽입 할 때 그것은 나에게 다음과 같은 오류가 발생합니다 :
OLE DB provider "MSDASQL" for linked server "PG_SYNC_TEST" returned message "positioned_load in pos_newload failed".
Msg 7343, Level 16, State 2, Line 1 The OLE DB provider "MSDASQL" for linked server "PG_SYNC_TEST" could not INSERT INTO table "[MSDASQL]".
이 사람이 무슨 일이 일어나고 무엇을 잘못 설정되어있는 것을 알고 있습니까를?
또한 MSSQL은 2016 및 PostgreSQL 9.6입니다.
UPDATE - 링크 된 서버 정의
/****** Object: LinkedServer [PG_SYNC_TEST] Script Date: 4/28/2017 8:06:39 AM ******/ EXEC master.dbo.sp_addlinkedserver @server = N'PG_SYNC_TEST', @srvproduct=N'PostgreSQL', @provider=N'MSDASQL', @datasrc=N'pg_sync_test' /* For security reasons the linked server remote logins password is changed with ######## */ EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'PG_SYNC_TEST',@useself=N'False',@locallogin=NULL,@rmtuser=N'mssql_user',@rmtpassword='########'
GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'collation compatible', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'data access', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'dist', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'pub', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'rpc', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'rpc out', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'sub', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'connect timeout', @optvalue=N'0' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'collation name', @optvalue=null GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'lazy schema validation', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'query timeout', @optvalue=N'0' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'use remote collation', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'PG_SYNC_TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true' GO
업데이트 2 - 오류를 반환 검색어 : 어떤 경우
이INSERT INTO PG_SYNC_TEST.sync.[public].v_test_points
(lat, lng, projection, elevation, geochem)
SELECT lat, lng, projection, elevation, geochem
FROM geochem
연결된 서버'exec sys.sp_linkedservers'의 전체 쿼리와 정의를 확인하십시오 –
@MikhailLobanov 업데이트를 살펴보십시오. – Aleksandar
오류를 반환하는 쿼리를 게시 할 수도 있습니까? 어떤 서버에서 실행됩니까? –