小编Chr*_*att的帖子

处理源 LOB 列时避免“逐行”获取方法

我有一个旧的 PostgreSQL 数据库源 (ODBC),我正在尝试使用 SSIS 将其迁移到新的 SQL Server 架构。我收到警告说:

强制执行“逐行”提取方法,因为该表具有 LOB 列。列内容为 LOB

问题是,没有一个列真的需要是 LOB。有一些是 TEXT 类型,但可以很容易地放在 varchar(max) 中。更奇怪的是,大多数已经varchars,但似乎 varchar(128) 上的任何内容都被视为 LOB(预先属性,数据类型为 DT_NTEXT)。

我尝试执行手动 SQL 命令,其中我在 select 语句中将每个字符串类型显式转换为适当长度的 varchar,并且它们仍然在 ODBC 源中设置为 DT_NTEXT。

我不是 DBA,所以我完全有可能在做一些非常愚蠢的事情。我只想知道确保类型最终成为 varchars 的最佳方法,以便我可以批量获取。有任何想法吗?

以防万一,我在 Visual Studio 2013 中使用 SSIS-BI 2014。

postgresql sql-server migration odbc ssis

12
推荐指数
1
解决办法
1万
查看次数

单击“编辑脚本...”时不会加载脚本组件源

我正在 Visual Studio 2013 中处理 SSIS 包。对于整个包中的任何脚本组件,如果我双击它然后单击“编辑脚本...”按钮,Visual Studio 2012 将打开但没有加载编辑器窗口. 它只是一个空窗口,就像您关闭了所有文档一样。解决方案资源管理器显示项目,但值得注意的是“ScriptComponent”是一个空文件夹:

在此处输入图片说明

如果我尝试在解决方案资源管理器中打开任何文件(BufferWrapper.cs、ComponentWrapper.cs、main.cs),我会收到一个弹出错误框,内容为:

未找到与约束匹配的导出:合同名称 Microsoft.VisualStudio.Utilities.IContentTypeRegistryService RequiredTypeIdentity Microsoft.VisualStudio.Utilities.IContentTypeRegistryService。

任何人都知道这里发生了什么?FWIW,我尝试关闭 Visual Studio 的所有实例并使用 SSIS 包重新打开我的解决方案。同样的行为仍然存在。

sql-server ssis ssdt visual-studio-2012 visual-studio-2013

5
推荐指数
1
解决办法
1万
查看次数