Мета данните, върнати от драйвера на PostgreSQL ODBC, не са картографирани правилно от файла SSMS ProviderDescriptors.xml. Този файл се намира в директория "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors" на моята SSMS инсталация.
Използване на информация, събрана от този въпрос
и Публикация в блог на MS
, успях успешно да импортирам от PostgreSQL с System.Data.Odbc.OdbcConnection
ProviderDescriptor
раздел за конфигурация по-долу. Промених MaximumLengthColumnName
, NumericPrecisionColumnName
и NumericScaleColumnName
стойности на атрибути в System.Data.Odbc.OdbcConnection
ColumnSchemaAttributes
за да съответства на действителните имена, върнати от PosgreSQL ODBC драйвера (LENGTH
и PRECISION
, SCALE
).
<dtm:ProviderDescriptor SourceType="System.Data.Odbc.OdbcConnection">
<dtm:SchemaNames
TablesSchemaName="Tables"
ColumnsSchemaName="Columns"
ViewsSchemaName="Views"
/>
<dtm:TableSchemaAttributes
TableCatalogColumnName="TABLE_CAT"
TableSchemaColumnName="TABLE_SCHEM"
TableNameColumnName="TABLE_NAME"
TableTypeColumnName="TABLE_TYPE"
TableDescriptor="TABLE"
ViewDescriptor="VIEW"
SynonymDescriptor ="SYNONYM"
NumberOfTableRestrictions="3"
/>
<dtm:ColumnSchemaAttributes
NameColumnName = "COLUMN_NAME"
OrdinalPositionColumnName="ORDINAL_POSITION"
DataTypeColumnName = "TYPE_NAME"
MaximumLengthColumnName = "LENGTH"
NumericPrecisionColumnName = "PRECISION"
NumericScaleColumnName = "SCALE"
NullableColumnName="NULLABLE"
NumberOfColumnRestrictions="4"
/>
<dtm:Literals
PrefixQualifier="""
SuffixQualifier="""
CatalogSeparator="."
SchemaSeparator="."
/>
</dtm:ProviderDescriptor>
Може да искате да запазите оригиналния ProviderDescriptors.xml
файл и се върнете към него, след като вашите задачи за импортиране приключат.