sql >> Databasteknik >  >> RDS >> PostgreSQL

Migrera från Postgres till SQL Server 2008

Jag hade problem med att använda Import Wizard i SQL Server 2008 R2 för att importera tabeller från PostgreSQL. Jag hade PostgreSQL ODBC-drivrutinen installerad, så för datakällan i Import Wizard valde jag ".Net Framework Data Provider for Odbc" och angav DSN-namnet för min PostgreSQL-databas. Guiden hittade tabellerna okej, men när jag gick för att utföra importen fick jag felet

Kolumninformation för käll- och måldata kunde inte hämtas.

"Fakturering" -> [dbo].[Fakturering]:

– Kan inte hitta kolumn -1.

Jag hittade lösningen i Microsofts blogginlägg här. Problemet är tydligen att olika ODBC-drivrutiner använder olika attributnamn när de rapporterar kolumnmetadata. För att få importen att fungera var jag tvungen att redigera filen "ProviderDescriptors.xml", som fanns på

C:\Program Files\Microsoft SQL Server\100\DTS\ProviderDescriptors\ProviderDescriptors.xml

I ...

<dtm:ProviderDescriptor SourceType="System.Data.Odbc.OdbcConnection">

... element Jag var tvungen att ändra attributen från ...

<dtm:ColumnSchemaAttributes
    NameColumnName = "COLUMN_NAME"
    OrdinalPositionColumnName="ORDINAL_POSITION"
    DataTypeColumnName = "TYPE_NAME"
    MaximumLengthColumnName = "COLUMN_SIZE"
    NumericPrecisionColumnName = "COLUMN_SIZE"
    NumericScaleColumnName = "DECIMAL_DIGITS"
    NullableColumnName="NULLABLE"
    NumberOfColumnRestrictions="4"
/>

... till ...

<dtm:ColumnSchemaAttributes
    NameColumnName = "COLUMN_NAME"
    OrdinalPositionColumnName="ORDINAL_POSITION"
    DataTypeColumnName = "TYPE_NAME"
    MaximumLengthColumnName = "LENGTH"
    NumericPrecisionColumnName = "PRECISION"
    NumericScaleColumnName = "SCALE"
    NullableColumnName="NULLABLE"
    NumberOfColumnRestrictions="4"
/>

Det vill säga, jag var tvungen att justera MaximumLengthColumnName , NumericPrecisionColumnName , och NumericScaleColumnName attribut värden till "LENGTH" , "PRECISION" och "SCALE" , respektive.

När den ändringen väl gjordes kördes importen från PostgreSQL till SQL Server framgångsrikt.



  1. PostgreSQL :cast sträng till datum DD/MM/ÅÅÅÅ

  2. .NET 4:Hur man konfigurerar EDMX-fil i annan assembly i Web.Config

  3. Postgresql GROUP_CONCAT motsvarande?

  4. R12.2 Bestämning och konfiguration av upplaga