2017-04-27 9 views
0

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

데이터 소스 (ODBC의 64) datasource (ODBC x64)

업데이트 2 - 오류를 반환 검색어 : 어떤 경우

INSERT INTO PG_SYNC_TEST.sync.[public].v_test_points 
(lat, lng, projection, elevation, geochem) 
SELECT lat, lng, projection, elevation, geochem 
FROM geochem 
+0

연결된 서버'exec sys.sp_linkedservers'의 전체 쿼리와 정의를 확인하십시오 –

+0

@MikhailLobanov 업데이트를 살펴보십시오. – Aleksandar

+0

오류를 반환하는 쿼리를 게시 할 수도 있습니까? 어떤 서버에서 실행됩니까? –

답변

1

확인에 대해 트리거가 사용 설정되었습니다.& [public].v_test_points - 그렇다면 비활성화하고 다시 시도하십시오.