数据变换和转换注意事项(SQL)
使用数据转换服务(DTS)转变或转换异类数据和目的服务器之间的数据之前,请考虑不同程序、提供程序以及驱动程序支
持数据类型和SQL语句的方式的变化。
当使用Microsoft®SQLServer™作为数据源时,请考虑以下事项:
将real数据类型转换为int数据类型也许不能返回准确的值,因为SQLServer2000只支持准确度为6位数字的
real数据类型。例如,real型数字2147480000可能生成2147480065的int值。
从一个文本文件将string(DBTYPE_WSTR)列转换为date(DBTYPE_DATE)或time(DBTYPE_TIME)列时,OLEDB数据转
换服务组件只承受一种日期或时间格式(yyyy-mm-ddhh:mm:ss.fffffffff)。使用日期时间字符串转换,或者使用CDate
函数编码MicrosoftActiveX®脚本转换正确地转换日期。
SQLServer2000不支持OLEDB类型DBTYPE_DATE或DBTYPE_TIME。SQLServer2000只支持DBTYPE_DATETIME。 oracle 时间转换
若要通过多步骤访问数据,请防止在转换过程中使用temp表。应使用全局temp表或在tempdb中创立永久表。
从temp表返回行的存储过程不能用作转换源。可以使用存储过程从全局temp表或表返回行。
在转换数据任务、数据驱动的查询任务或DTS设计器中的执行SQL任务中使用临时表时,请记住:不能使用Transact-
SQL语句或调用temp表的存储过程作为源。
该限制并不应用于DTS设计器的外部。可使用通过编程方式访问SQLServertemp表的源语句或存储过程。
DTS导入/导出向导和DTS设计器
当使用DTS导入导出向导和DTS设计器创立包时,请考虑以下事项:
DTS用户界面允许共享任务中现有的连接,但是同一个连接不能既用在一个转换的源中又用在该转换的目的中。
使用DTS设计器或DTS导入/导出向导,有可能为一些只作为数据源的提供程序指定只读或正在使用状态(例如,
MicrosoftAccess和ODBCDSN)。单击"连接属性"对话框中的"高级"选项卡,然后在"高级连接属性"对话框中,将模式
属性值设置为1。
使用DTS导入/导出向导或DTS设计器创立表时,在目的地上创立的表的所有者为当前用户(通常是dbo),与谁是源表
的所有者无关。这将产生这种情况:dbo试图在目的地创立一个表,而该表的名称已经
存在,从而导致尝试失败。
当使用DTS设计器定义数据驱动的查询时,数据目的地必须能够支持OLEDBICommand接口。由于这种限制,类似文本
文件的目的不被支持。
如果text、ntext和image类型的字段长度超过8388602字节,则DTS的复制SQLServer对象任务将截断超出的部
分。DTS设计器或DTS导入/导出向导不显示任何错误信息,而是显示任务已成功完成。
唯一的失败指示是一条写入日志文件的日志消息,此文件的名称为..log,位于"复制SQLServer对
象任务属性"对话框的"复制"选项卡所指定的脚本文件目录中。此日志消息详细说明表和列,但不指出发生截断的行。无任
何错误记录写入DTS错误文件或SQLServer日志。
MicrosoftSNAServer
当使用MicrosoftSNAServer作为数据源时,请考虑以下事项:
AS/400和VSAM的MicrosoftOLEDB提供程序不支持DTS导入/导出向导用来创立或截断表的SQL语句。
MicrosoftAccess
使用Access时,应考虑以下事项:
当从SQLServer2000中将数据导出到MicrosoftAccess97或更早的版本中,Access的MicrosoftOLEDB提供程序
在内存中为所有插入设置缓冲区,并且只在DTS导入/导出向导完成操作时提交它们。结果是,可以在导出大量表时,面
对内存较小的形势。然而,可以通过构造在多个传递中发送较少行数的SELECT语句解决该问题。
MicrosoftVisualFoxPro
MicrosoftVisualFoxPro®只支持numeric数据类型的(15,9)精度。如果导出到VisualFoxPro的数据超出该精
度,则会被截断并四舍五入。
VisualFoxPro不支持SELECTINTO语句。
DTS查询设计器支持VisualFoxProINSERTVALUE语句,但不支持使用SELECT语句的INSERT语句。
ODBC的MicrosoftOLEDB驱动程序无法使用FoxProODBC驱动程序将BLOB写入VisualFoxPro,因为Visual
FoxPro不支持动态游标。
ODBC
当连接到ODBC数据源时,请考虑以下事项:
ODBC的MicrosoftOLEDB提供程序在执行导出操作时需要一个在带有BLOB数据列的所有目标表上的唯一键。
当使用带有SQLServerODBC驱动程序的ODBC的MicrosoftOLEDB提供程序时,在安排带有源行集中其它数据类型的
列之后安排所有BLOB列。可以使用SELECT语句重新将BLOB列安排到源行集的末尾。DTS导入/导出向导自动地执行该
操作。
重要当使用带有SQLServerODBC驱动程序的ODBC的MicrosoftOLEDB提供程序时,请尝试预览带有连接忙错误的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论