数据变换和转换注意事项(SQL)
2008-04-02 10:45:39来源:互联网 阅读 ()
持数据类型和 SQL 语句的方式的变化。
当使用 Microsoft® SQL Server™ 作为数据源时,请考虑下列事项:
将 real 数据类型转换为 int 数据类型也许不能返回精确的值,因为 SQL Server 2000 只支持精确度为 6 位数字的
real 数据类型。例如,real 型数字 2147480000 可能生成 2147480065 的 int 值。
从一个文本文档将 string (DBTYPE_WSTR) 列转换为 date (DBTYPE_DATE) 或 time (DBTYPE_TIME) 列时,OLE DB 数据转
换服务组件只接受一种日期或时间格式 (yyyy-mm-dd hh:mm:ss.fffffffff)。使用日期时间字符串转换,或使用 CDate
函数编码 Microsoft ActiveX® 脚本转换正确地转换日期。
SQL Server 2000 不支持 OLE DB 类型 DBTYPE_DATE 或 DBTYPE_TIME。SQL Server 2000 只支持 DBTYPE_DATETIME。
若要通过多步骤访问数据,请避免在转换过程中使用 temp 表。应使用全局 temp 表或在 tempdb 中创建永久表。
从 temp 表返回行的存储过程不能用作转换源。能够使用存储过程从全局 temp 表或表返回行。
在转换数据任务、数据驱动的查询任务或 DTS 设计器中的执行 SQL 任务中使用临时表时,请记住:不能使用 Transact-
SQL 语句或调用 temp 表的存储过程作为源。
该限制并不应用于 DTS 设计器的外部。可使用通过编程方式访问 SQL Server temp 表的源语句或存储过程。
DTS 导入/导出向导和 DTS 设计器
当使用 DTS 导入导出向导和 DTS 设计器创建包时,请考虑以下事项:
DTS 用户界面允许共享任务中现有的连接,但是同一个连接不能既用在一个转换的源中又用在该转换的目的中。
使用 DTS 设计器或 DTS 导入/导出向导,有可能为一些只作为数据源的提供程式指定只读或正在使用状态(例如,
Microsoft Access 和 ODBC DSN )。单击"连接属性"对话框中的"高级"选项卡,然后在"高级连接属性"对话框中,将模式
属性值配置为 1。
使用 DTS 导入/导出向导或 DTS 设计器创建表时,在目的地上创建的表的任何者为当前用户(通常是 dbo),和谁是源表
的任何者无关。这将产生这种情况:dbo 试图在目的地创建一个表,而该表的名称已存在,从而导致尝试失败。
当使用 DTS 设计器定义数据驱动的查询时,数据目的地必须能够支持 OLE DB ICommand 接口。由于这种限制,类似文本
文档的目的不被支持。
假如 text、ntext 和 image 类型的字段长度超过 8388602 字节,则 DTS 的复制 SQL Server 对象任务将截断超出的部
分。DTS 设计器或 DTS 导入/导出向导不显示任何错误信息,而是显示任务已成功完成。
唯一的失败指示是一条写入日志文档的日志消息,此文档的名称为 <server>.<database>.log,位于"复制 SQL Server 对
象任务属性"对话框的"复制"选项卡所指定的脚本文档目录中。此日志消息周详说明表和列,但不指出发生截断的行。无任
何错误记录写入 DTS 错误文档或 SQL Server 日志。
Microsoft SNA Server
当使用 Microsoft SNA Server 作为数据源时,请考虑下列事项:
AS/400 和 VSAM 的 Microsoft OLE DB 提供程式不支持 DTS 导入/导出向导用来创建或截断表的 SQL 语句。
Microsoft Access
使用 Access 时,应考虑下列事项:
当从 SQL Server 2000 中将数据导出到 Microsoft Access 97 或更早的版本中,Access 的 Microsoft OLE DB 提供程式
在内存中为任何插入配置缓冲区,并且只在 DTS 导入/导出向导完成操作时提交他们。结果是,能够在导出大量表时,面
对内存较小的形势。然而,能够通过构造在多个传递中发送较少行数的 SELECT 语句解决该问题。
Microsoft Visual FoxPro
Microsoft Visual FoxPro® 只支持 numeric 数据类型的 (15,9) 精度。假如导出到 Visual FoxPro 的数据超出该精
度,则会被截断并四舍五入。
Visual FoxPro 不支持 SELECT INTO 语句。
DTS 查询设计器支持 Visual FoxPro INSERT VALUE 语句,但不支持使用 SELECT 语句的 INSERT 语句。
ODBC 的 Microsoft OLE DB 驱动程式无法使用 FoxPro ODBC 驱动程式将 BLOB 写入 Visual FoxPro,因为 Visual
FoxPro 不支持动态游标。
ODBC
当连接到 ODBC 数据源时,请考虑下列事项:
ODBC 的 Microsoft OLE DB 提供程式在执行导出操作时需要一个在带有 BLOB 数据列的任何目标表上的唯一键。
当使用带有 SQL Server ODBC 驱动程式的 ODBC 的 Microsoft OLE DB 提供程式时,在安排带有源行集中其他数据类型的
列之后安排任何 BLOB 列。能够使用 SELECT 语句重新将 BLOB 列安排到源行集的末尾。DTS 导入/导出向导自动地执行该
操作。
重要 当使用带有 SQL Server ODBC 驱动程式的 ODBC 的 Microsoft OLE DB 提供程式时,请尝试预览带有连接忙错误的
存储过程失败。假如使用 SQL Server 的 Microsoft OLE DB 提供程式,该问题就不会发生。
假如一个用于 SQL Server 的 Microsoft ODBC 驱动程式连接由多个线程共享,此连接可能会失败,并返回错误信
息"Connection is busy with results for another hstmt"(此连接正忙于其他 hstmt 的结果)。在某些情况下,这将
影响通过 DTS 导入/导出向导生成的包。使用以下方法之一解决此问题:
将 MaxConcurrentSteps 属性配置为1 以消除竞争的线程。
创建其他的 ODBC 连接以消除连接共享。
使用用于 SQL Server 的 Microsoft OLE DB 提供程式 (SQLOLEDB) 连接数据库。假如需要连接 SQL Server 6.5 数据
库,则运行 Instcatl.sql 以启用通过用于 SQL Server 的 Microsoft OLE DB 提供程式进行访问。
Oracle
当使用 Oracle 作为数据源时,请考虑以下事项:
用于 Oracle 的 Microsoft ODBC 和 OLEDB 驱动程式支持 Oracle 7.3 BLOB 数据类型,不支持 Oracle 8.0 数据类型。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash