Die vom PostgreSQL-ODBC-Treiber zurückgegebenen Metadaten werden von der SSMS-Datei „ProviderDescriptors.xml“ nicht korrekt zugeordnet. Diese Datei befindet sich in meiner SSMS-Installation im Verzeichnis „C:\Programme (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors“.
Verwenden von Informationen aus dieser Frage
und MS-Blogpost
, konnte ich mit System.Data.Odbc.OdbcConnection
erfolgreich aus PostgreSQL importieren ProviderDescriptor
Konfigurationsabschnitt unten. Ich habe den MaximumLengthColumnName
geändert , NumericPrecisionColumnName
und NumericScaleColumnName
Attributwerte in System.Data.Odbc.OdbcConnection
ColumnSchemaAttributes
um mit den tatsächlichen Namen abzugleichen, die vom PosgreSQL-ODBC-Treiber zurückgegeben werden (LENGTH
, und 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>
Möglicherweise möchten Sie die ursprüngliche ProviderDescriptors.xml
speichern Datei und kehren Sie zu ihr zurück, sobald Ihre Importaufgaben abgeschlossen sind.