Dữ liệu meta được trả về bởi trình điều khiển PostgreSQL ODBC không được ánh xạ chính xác bởi tệp SSMS ProviderDescriptors.xml. Tệp này nằm trong thư mục "C:\ Program Files (x86) \ Microsoft SQL Server Management Studio 18 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ SSIS \ 150 \ ProviderDescriptors" trên cài đặt SSMS của tôi.
Sử dụng thông tin thu thập được từ câu hỏi này
và Bài đăng trên blog MS
, Tôi đã có thể nhập thành công từ PostgreSQL bằng System.Data.Odbc.OdbcConnection
ProviderDescriptor
phần cấu hình bên dưới. Tôi đã thay đổi MaximumLengthColumnName
, NumericPrecisionColumnName
và NumericScaleColumnName
các giá trị thuộc tính trong System.Data.Odbc.OdbcConnection
ColumnSchemaAttributes
để khớp với tên thực được trình điều khiển PosgreSQL ODBC trả về (LENGTH
và 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>
Bạn có thể muốn lưu ProviderDescriptors.xml
gốc và hoàn nguyên về nó sau khi các tác vụ nhập của bạn hoàn thành.