PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Migracja z Postgres do SQL Server 2008

Miałem problemy z używaniem Kreatora importu w SQL Server 2008 R2 do importowania tabel z PostgreSQL. Miałem zainstalowany sterownik PostgreSQL ODBC, więc jako źródło danych w Kreatorze importu wybrałem ".Net Framework Data Provider for Odbc" i podałem nazwę DSN dla mojej bazy danych PostgreSQL. Kreator znalazł tabele w porządku, ale kiedy poszedłem wykonać import, pojawił się błąd

Nie można pobrać informacji o kolumnach dla danych źródłowych i docelowych.

„Płatności” -> [dbo].[Płatności]:

– Nie można znaleźć kolumny -1.

Znalazłem rozwiązanie w poście na blogu Microsoftu tutaj. Najwyraźniej problem polega na tym, że różne sterowniki ODBC używają różnych nazw atrybutów podczas raportowania metadanych kolumn. Aby import działał, musiałem wyedytować plik "ProviderDescriptors.xml", który znajdował się pod adresem

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

W ...

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

... element musiałem zmienić atrybuty z ...

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

... do ...

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

Oznacza to, że musiałem dostosować MaximumLengthColumnName , NumericPrecisionColumnName i NumericScaleColumnName wartości atrybutów do "LENGTH" , "PRECISION" i "SCALE" , odpowiednio.

Po wprowadzeniu tej zmiany import z PostgreSQL do SQL Server przebiegł pomyślnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw słownik Pythona za pomocą Psycopg2

  2. Najlepsze nowe funkcje w PostgreSQL 14

  3. Jak napisać ograniczenie dotyczące maksymalnej liczby wierszy w postgresql?

  4. Przegląd przetwarzania VACUUM w PostgreSQL

  5. PG::Błąd:SELECT DISTINCT, ORDER BY wyrażenia muszą pojawić się na liście wyboru