使用SQL DB连接源信息

在本产品许可的前提下,SQL DB连接源信息可以从数据库中读取数据。在本产品被许可的前提下,更新SQL DB连接源信息可以在数据库中更新数据。


支持SQL DB类型

关于本产品所支持的数据类型的详细信息,参照Readme.txt。

本产品使用OLE DB Provider或ODBC Drivers连接到各个类型的数据库。
使用哪种连接,可以在
SQLDB连接器连接源信息属性对话框Provider种类中或更新SQLDB连接器连接源信息属性对话框Provider种类中来指定。
数据库种类以及各个数据库连接的Provider种类,请参照如下描述:

Microsoft SQL Server
可以使用的Provider种类为"Microsoft OLE DB Provider for SQL Server" 或 "ODBC Drivers"。
"Microsoft OLE DB Provider for SQL Server"是Microsoft SQL Server的专用的Provider。所以在SQL DB 格式设置对话框中不作任何修改用户默认值下就可以使用。
为使用"ODBC Drivers", 在SQLDB格式设定对话框中指定一个模板"SQL服务器"。
关于可用于Microsoft SQL Server的数据类型信息,参照使用SQL Server
Oracle
可以使用的Provider种类为"Microsoft OLE DB Provider for Oracle" 或者 "ODBC Drivers"。
"Microsoft OLE DB Provider for Oracle"是ORACLE专用的OLE DB Provider。 所以在SQL DB 格式设置对话框中不作任何修改用户默认值下就可以使用。
是否该使用ODL DB Provider或者ODBC Drivers,参照 选择连接方法
为使用"ODBC Drivers",在SQLDB格式设定对话框中指定一个模板"ORACLE"。
关于可用于Oracle的数据类型信息,参照 使用Oracle
IBM Red Brick Warehouse
可以使用的Provider种类为"ODBC Drivers"。
如果选择了 Provider种类为"ODBC Drivers",那么会为IBM Red Brick Warehouse配置默认值。所以在SQL DB 格式设置对话框中不作任何修改用户默认值下就可以使用。
关于可用于IBM Red Brick Warehouse 的数据类型信息,参照 使用Red Brick
IBM DB2 Universal Database
可以使用的Provider种类为"ODBC Drivers"。
SQLDB格式设定对话框中使用一个标准的"DB2"模板。
可用数据类型被分别说明如下。
MaxDB by MySQL
可以使用的Provider种类为"ODBC Drivers"。
SQLDB格式设定 对话框中使用一个标准的"MaxDB"模板。
关于可用于MaxDB的数据类型的详细信息,请参照使用MaxDB
Microsoft Access
可以使用的Provider种类为"ODBC Drivers"。
SQLDB格式设定对话框中使用一个标准的" Access"模板。
关于可用于Microsoft Access数据类型的详细信息,请参照 使用Access
Microsoft Excel
可以使用的Provider种类为"ODBC Drivers"。
SQLDB格式设定对话框中使用一个标准的"Excel"模板。
关于可用于Microsoft Excel数据类型的详细信息,参照使用Excel。在Excel文件中必须做特殊设置以便于ODBC 连接。 关于此信息也在该说明中。
对于其它数据库
上述未提到的数据库,在SQLDB格式设定对话框中,应该为各个数据库设置合适的配置,以及足够的连接确认测试。
SQLDB格式设定中的标准模板,对上述之外的数据库是不支持的。请参照数据库手册,作出适当的设置。
然而,也有对上述之外的数据库的参照模板,这样可以减少测试连接的时间花费。
可以使用的Provider种类为"ODBC Drivers"。
关于可用数据类型的详细信息,参照使用带ODBC Drivers的其它数据库


选择连接方法

同一个数据库可以使用各种连接的方法,因为连接方法有以下的性质,所以需要区分使用。


视表过滤器内使用输入用视表的注意事项
在统计视表过滤器中使用输入视表
当指定SQL DB连接源信息视表作为统计视表过滤器的输入视表时,注意下列事项。
在结合视表过滤器,归并视表过滤器中使用输入视表
当指定结合视表过滤器,归并视表过滤器中使用输入视表,注意下列事项:
  • 要视表排序需要作出合理的设置。
    结合以及归并处理前,预先设定了的结合表格栏或键表格栏进行排序处理,在SQL 数据库服务器上执行,还是在本产品中(结合视表过滤器,归并视表过滤器中)执行,可以通过结合视表过滤器属性I/O用视表标签要视表排序复选框,以及归并视表过滤器I/O用视表标签来设定。
    如果没有作出合适的设置,那么结合或归并的结果将不正确。
    要视表排序设置的详细信息,参照输入视表排序
  • 结合视表过滤器中使用的输入视表在DB端进行结合
    如果结合视表过滤器属性结合标签以DB方式结合复选框被选择,那么可以结合SQL数据库端。请注意,与DB端的结合,依赖于数据库类型和Provider。
    即使使用了可以和DB端结合的数据库连接,但是由于结合种类和结合关系的复杂性会导致不能执行结合处理。
    在DB端不能进行结合处理时,在执行期间将发生 SQL语句错误情况,所以在作为生成运行之前需要仔细评估。
    因为在FROM子句以及WHERE子句中指定的结合条件,与SQL可能会产生一些差异,所以请在SQLDB格式设定对话框结合标签中设定适当的设置。
    根据数据库的版本,在FROM子句中指定的内容将与WHERE子句中的不同。

    视表过滤器内使用输出用视表的注意事项
    DB安全更新的注意事项
    当使用本产品时,每个用户能够很便利的更新DB。尽管很方便,但是也带来了一些意想不到的错误。
    视表和表之间的关系
    在一个作业中,很多视表可以被定义其相同的视表名在带SQL DB连接源信息视表或带更新SQL DB连接源信息视表中被指定。
    然而在本产品中有不同的视表。
    这是可能的,例如,通过使用带更新SQL DB连接源信息视表来更新表的数据,并且事后从带SQL DB连接源信息视表中读取相同表的内容。在这期间,必须以正确的顺序通过使用执行优先级设置执行视表过滤器。
    而且,通过使用更新SQL DB视表过滤器属性,设置数据保证(COMMIT)方法能,可以为在带更新SQL DB连接源信息视表中指定的表定义各种类型的更新事务。请注意事务可能在某一个视表中被关闭。
    例如:从带SQL DB连接源信息视表中读取数据。读取过程和写入过程不能被包含在相同的事务中,即使创建的作业与使用带更新SQL DB连接源信息视表的处理数据是相同记录被写入。对于这类作业,操作必须保证其它更新过程,像夜间的批处理操作并不会包含在环境中执行。
    更进一步说,一个作业可以被创建来执相同表的同步更新。这是由设置输出来分离相同表的视表被执行的。然而,由于它是另一个事务,每个视表的更新排斥锁是分别进行的。
    因此,为阻止同步更新相同的表,设置执行优先级设置并确保数据保证(COMMIT)方法设置对话框中适当的设置,不选中同步更新。在这种情形下,有可能出现死锁。
    当两个或更多不同表的视表被更新,更新将分别对每个表被执行。因此,多个表不能被同步更新。然而,多个表的伪同步可以由同步组功能被更新。关于同步组的详细信息,参照作业属性对话框同步标签
    死锁检测
    关于更新数据库,必须考虑死锁的发生。
    当更新同一数据库的多个事务被同事执行,无限期地相互等待排他锁的释放,那么就发生了死锁。
    在许多数据库中,如果发生了死锁,DBMS(数据库管理系统)将检测并将向数据库返回关于更新的错误。更新命令过程异常终了,返回一个错误。这将释放排他锁,而其它正等待锁释放的进程,就可以继续执行。夜间同步批处理等操作并没有和更新的操作同时执行,所以没有该问题。但是当死锁发生且异常终了时,需要再次创建一个作业来执行同步更新。那么作业可以被重新运行。
    一些数据库的默认步骤是不检测死锁的发生。在支持SQL DB类型中所描述的数据库,Microsoft SQL Server与此对应。
    这种情况的数据库,当执行一个带同步更新的作业时,如果发生了死锁,注意作业可能被挂起,因为更新命令将继续无限期的等待。因为作业属性对话框中需要指定超时无效,当更新命令处于等待状态时,必须在数据库中设置死锁发生的检测。
    主键重复错误
    主键重复在数据库中,应该是"信息的正常状态"而不是"错误状态"。
    支持SQL DB类型中所描述的数据库中, IBM Red Brick Warehouse与此对应。
    在这样一个数据库中,当试图插入一个主键字段已经存在值的记录时,记录将不被插入,并且将显示"信息的正常状态"。
    在本产品中,当更新这样一个数据库时,即使它输出一个有主键重复值的记录时,它不会成为一个错误而只是插入不被执行,在使用视表过滤器而不是更新SQL DB视表过滤器属性来写入输出视表的情况下,或者在使用更新SQL DB视表过滤器来写入输出视表与"Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入"作为更新方法被选定的情况下。当"正常状态"从数据库中被返回,它将解释更新被正常完成,因此,在本产品中,确认对于通过日志文件等的插入不能被执行。
    在主键重复的情况下,它能被检查插入是否被执行,通过选择"Insert PR - 先插入、如主键重复错误发生则拒绝插入" 或者 "Insert KR - 如键表格栏值存在则拒绝插入、不存在则插入"作为更新SQL DB视表过滤器的更新方法并监测拒收记录的存在。(当更新方法是"Insert PR - 先插入、如主键重复错误发生则拒绝插入",即使更新过程被正常完成,更新过程仍监测"主键重复错误代码"。)
    发送数据保证(COMMIT)
    数据保证(COMMIT)方法应该在数据保证(COMMIT)方法设置对话框中被指定,并且有如下这些情况当 发送数据保证(COMMIT)被设置为"无"或者,他被设置为 "有"。
    支持SQL DB类型中解释的数据库中,以下与此对应。
    输出期间表格栏精度
    如果输出值大于表格栏精度,将发生精度超过的错误(详细信息,参照错误处理(输出)对话框写入错误)。然而,在带更新SQL DB连接源信息视表的情况下,如果关键字表格栏的输出值超过了表格栏的精度,注意有可能会发生错误更新。
    有关详细信息,参照更新标签关于更新数据库错误的描述。
    输出期间表格栏小数点以下位数
    小数点以下位数的小数位被四舍五入省略。如果本产品的表格栏安装中小数点的以下位数小于数据库中小数点以下位数,那么会被四舍五入后存储在数据库中。详细信息,参照表格栏类型
    在本产品中,表格栏属性中定义的小数点以下的位数大于数据库中小数点以下位数数目时,小于小数点以下的位数的数字通过数据库(或ODBC Drivers)的规范来省略。 注意数据库中有,四舍五入功能以及截断功能。


    其它注意事项
    取消
    发送到SQL数据库服务器的进程请求在没有获得请求结果时不能被取消。
    尽管,在
    作业执行对话框中点击了取消执行按钮,正在更新或检索数据库的作业不能被立即结束。
    当数据库正在被检索时,在作业属性对话框中为作业指定的超时不起作用。当超时界限超过了检索和更新的完成,过程将按取消处理。
    表格栏类型
    通过导入向导检索表格栏类型之后, 表格栏类型 (类型)可以通带SQL DB连接源信息视表带更新SQL DB连接源信息视表被更改或执行。但是没有充分的数据类型检查"4-字节整数", "4-字节无符号整数", "2-字节整数", "2-字节无符号整数", "单精度浮点数", "双精度浮点数", 等。 例如, 即使应该以位数被读取的表格栏数据类型被设置为"1-字节整数"并且作业状态被执行,也不会有读取错误,如果它不是一个"4-字节整数"。
    导入之后不要更改类型,除非内部数据类型改变中数值型十进制数类型 被改变。
    而且,如果需要根据精度来校验,在输出视表中校验它。
    表格栏精度
    在本产品中字符类型二进制类型的最大 精度值是 4096 和 8192。
    当使用导入向导 表格栏定义数据库大小可能超过最大值。当检索最大值的表格栏精度,最大值能被准确获得。
    当值从该表格栏中被输入,只有由精度指定的字节数数据从数据库的存储数据中被读取。由于数据的精度是充分的, 读取错误 不被处理。
    空格处理
    关于数据库字符类型的数据类型可能被分为可变长度字符类型如"VARCHAR" 与固定长度字符类型如"CHAR"。 (这不确定,因为其依赖于数据库的规范)
    在这些数据库类型中,字符串被存储像可变长度字符类型表格栏。字符串之后的表格栏精度空格被存储为固定长度字符类型表格栏。
    像在空格处理中描述的一样,结尾空格在读取视表数据过程中被删除。这类似于在固定长度字符类型表格栏与可变长度字符类型表格栏中被处理。因此,不需要考虑数据库中的数据类型是否是可变长度字符类型或固定长度字符类型。
    当选择条件被指定时,应该给予更多的注意。在许多数据库中,它将变为如下: (这基于数据库规范并且可能不会一直可用)。
    文字码
    文字码中,带SQL DB连接源信息视表带更新SQL DB连接源信息视表 只能选择"GB18030"。也就是说,本产品被操作是通过假定与数据库交换的字符数据是在"GB18030"中。 (然而,当"ODBC Drivers" 被使用,与Unicode交换的表格栏类型如"字符(WCHAR)"也许可以被使用。关于详细信息,参照选择连接方法)
    通常这从不是主要问题,因为数据库服务器文字码,"GB18030"的字符数据可以在客户端被输入输出。但是要注意以下事项:
    表名的描述
    当必须通过使用模式名(属主用户名)访问表时,输入描述如带SQL DB连接源信息视表带更新SQL DB连接源信息视表表名中的"模式名.表名"。
    "模式名" 和 "表名"之间的符号是由SQLDB格式设置对话框分隔符定义的字符。默认分隔符是句号,但是当连接数据库时分隔符被改变,也会改变表名中所使用的分隔符。
    不能被用于表名或表格栏名中的字符
    带SQL DB连接源信息视表或带更新SQL DB连接源信息视表的数据访问是通过视表或视表过滤器定义中生成的SQL语句来实现的。如果SQL语法中带特殊含义的一个符号与单词被包含在表名或表格栏名中,这样的数据不能被访问。
    在SQL语法中有特殊含义的符号与关键词如下:
    当新定义表与表格栏时,不要使用上面提到的相关符号与关键词。"保留关键词为将来使用"可能表示为关键词。所以需要避免使用该符号。
    在上面提到的SQL格式设置对话框的引用符设置中,可以被访问带限制的表或表格栏。对于该限制的详细信息,参照SQL格式设置对话框的描述。


    使用SQL 服务器

    SQL Server所所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于 SQL Server的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    bigint 8-字节数字字符串(十进制数),
    8-字节整数
    它将作为"8-字节数字字符串(十进制数)"被导入。 如果需要的有效位低于14,通过改为"8-字节整数"处理速度可能会增加。
    binary 二进制  
    bit 2-字节无符号整数,

    "Microsoft OLE DB Provider for SQL Server"下表示"2-字节无符号整数"。
    "ODBC Drivers"下表示"位"。
    charchar 字符  
    datetime 日期时间
    decimal 数字(二进制数),
    数字(十进制数),
    十进制(二进制数),
     "Microsoft OLE DB Provider for SQL Server"下表示"数字(xxx)"。"ODBC Drivers"下表示"十进制(xxx)"。
    如果精度大于等于15,或者小数点以下位数大于等于1,那么表示为"xxx(十进制数)"。 如果精度在14以内并且小数点以下位数是0那么表示为"xxx(二进制数)"。 数据类型导入之后,如果有效数字在14以内并且小数点以下位数是0,那么处理速度可能会提高。
    floatloat 双精度浮点数  
    image 二进制, "Microsoft OLE DB Provider for SQL Server"下表示"二进制"。"ODBC Drivers"下表示"二进制(LONGVARBINARY)"。
    int 4-字节整数  
    money Money(十进制数),
    Money(二进制数),
    十进制(十进制数),
    "Microsoft OLE DB Provider for SQL Server"下表示"Money(十进制数)"。"ODBC Drivers"下表示"十进制(十进制数)"。
    有效数字在14以内并且小数点以下位数是0,那么向"xxx(二进制数)"转换的处理速度可能会提高 。
    nchar 字符,
    字符(WCHAR)
    "Microsoft OLE DB Provider for SQL Server"下表示"字符"。因为导入的精度是Unicode中的字符数,导入后变成2倍字节数。"nchar(10)"的表格栏在视表中将是精度20。
    "ODBC Drivers"下表示"字符(WCHAR)"。
    因为导入的精度是字节数,所以没有变化。
    该表格栏是为固定长度的Unicode字符串。如果数据的长度低于指定的表格栏长度,缺省部分将被双字节白色空格填充。
    ntext 字符,
    字符(WLONGVARCHAR)
    Microsoft OLE DB Provider for SQL Server"下表示"字符"。因为导入的精度是Unicode中的字符数,导入后变成2倍字节数。
    ntext表格栏可以用来读取和写入,但是作为选定条件下或删除条件下时,会发生错误。"Microsoft OLE DB Provider for SQL Server"下表示"字符"。请咨询数据库管理员,表格栏可以指定什么数据类型。如果表格栏是ntext类型,不要在选定条件下指定表格栏。
    numeric 数字(二进制数),
    数字(十进制数)
    数字(如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示"数字(十进制数)"。如果精度在14以内并且小数点以下位数是0,那么表示"数字(二进制数)"。数据类型导入之后,如果有效数字在14以内并且小数点以下位数是0,那么处理速度可能会提高。
    nvarchar 字符,
    字符(WVARCHAR)
    "Microsoft OLE DB Provider for SQL Server"下表示"字符"。因为导入的精度是Unicode中的字符数,导入后变成2倍字节数。
    "ODBC Drivers"下表示"字符(WVARCHAR)"。因为导入的精度是字节数,所以没有变化。
    real 单精度浮点数  
    smalldatetime 日期时间
    smallint 2-字节整数  
    smallmoney Money(十进制数),
    MonDecimal(二进制数)
    "Microsoft OLE DB Provider for SQL Server"下表示"Money(十进制数)"。"ODBC Drivers"下表示"Money(十进制数)"。
    有效数字在14以内并且小数点以下位数是0,那么"xxx(二进制数)"的处理速度可能会提高。
    sysname 字符,
    字符(WVARCHAR)
    "Microsoft OLE DB Provider for SQL Server"下表示"字符"。 因为导入的精度是Unicode中的字符数,导入后变成2倍字节数。例如:导入之后的精度是128,那么需要改变精度为256。
    "ODBC Drivers"下表示"字符(WVARCHAR)"。因为导入的精度是字节数,所以没有变化
    text 字符,
    字符(LONGVARCHAR)
    "Microsoft OLE DB Provider for SQL Server"下表示"字符"。"ODBC Drivers"下表示"字符(LONGVARCHAR)"。
    该表格栏表格栏可以用来读取和写入,但是作为选定条件下或删除条件下时,会发生错误。"Microsoft OLE DB Provider for SQL Server"下表示"字符"。请咨询数据库管理员,表格栏可以指定什么数据类型。如果表格栏是text类型,不要在选定条件下指定表格栏。
    timestamp 二进制 不能成为"日期时间"。
    tinyint 1-字节无符号整数  
    uniqueidentifier 字符 "Microsoft OLE DB Provider for SQL Server"下表示"字符"。按原样设置它。"Microsoft OLE DB Provider for SQL Server"下,可以用来读取和写入带字符串格式像"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"。 ("x" 将是一个十六进制字符 (0-9A-F)。)
    "ODBC Drivers"下表示"未知"。改变类型为"字符"。
    "ODBC Drivers"下,用来读取和写入带字符串格式像"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"。 ("x" 将是一个十六进制字符 (0-9A-F)。)
    varbinary 二进制,
    二进制(VARBINARY)
    "Microsoft OLE DB Provider for SQL Server"下表示"二进制"。"ODBC Drivers"下表示"二进制(VARBINARY)"。
    varchar 字符,
    字符(VARCHAR)
     "Microsoft OLE DB Provider for SQL Server"下表示"字符"。"ODBC Drivers"下表示"字符(VARCHAR)"。


    使用Oracle

    Oracle所所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于Oracle的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    BLOB 二进制(LONGVARBINARY) 只有"ODBC Drivers"可以被用来连接。"Oracle Provider for OLE DB"不能被使用。
    CHAR 字符  
    CLOB 字符(LONGVARCHAR) "ODBC Drivers"可以被用于读取当不能被用于写入。
    "Oracle Provider for OLE DB"既不能用于读取也不能用于写入。
    DATE 日期时间
    FLOAT 双精度浮点数  
    INTEGER 数字(二进制数),
    数字(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示 "数字(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示"数字(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    LONG 字符,
    字符(LONGVARCHAR)
    如果"Oracle Provider for OLE DB"被用于连接,表示为"字符"。如果"ODBC Drivers"被用来连接,表示为"字符(LONGVARCHAR)"。
    尽管该表格栏可以被用于读取和写入,不要指定关于统计的组键,关于结合的结合键给表格栏,以及关于SQL DB更新的删除/更新关键字表格栏,以便它将不会产生运行错误。如果"Oracle提供的OLE DB"被使用,因为CHAR 类型与LONG类型字段都将是"字符",询问你的数据库管理员什么数据类型被定义,并且限制LONG类型的使用。
    LONG RAW 二进制,
    二进制(LONGVARBINARY)
    如果"Oracle Provider for OLE DB"被用于连接,表示为"二进制"。如果"ODBC Drivers"被用来连接,表示为"二进制(LONGVARBINARY)"。
    NCHAR 字符,
    字符(WCHAR)
    只有"ODBC Drivers"可以被用来连接。"Oracle Provider for OLE DB"不能被使用。
    如果该表格栏被导入,表示为"字符"。 它可以被改为"字符(WCHAR)"。如"字符(WCHAR)"被指定,Unicode中的字符可以被读取和写入而不用修改。
    因为导入获得的精度是Unicode中的字符数,加倍数目使其成为字节数。
    该表格栏是为固定长度Unicode字符串。如果数据长度小于指定的表格栏大小,缺少部分将被双字节空格填充。
    NUMBER 数字(二进制数),
    数字(十进制数),
    十进制(二进制数),
    十进制(十进制数),
    双精度浮点数
    如果"Oracle Provider for OLE DB"被用于连接,表示为"数字(xxx)"。如果"ODBC Drivers"被用来连接,表示为"十进制(xxx)"。(这在后面将被描述为"双精度浮点数")
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "xxx(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"xxx(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    当你在Oracle中指定一个字段类型是"NUMBER(精度,数值)",你可以指定一个负数给数值,或者你可以指定一个条件像"精度<数值"。如果表格栏被导入,指定的精度和数值将被分配给导入表格栏的精度和小数点以下位数。然而,视表属性不能带该表格栏目标被保存。如果小数点以下位数是负数,相同值应该被追加到精度和小数点以下位数,并且它们必须大于等于0。例如,如果精度是1并且小数点以下位数是-2,那么使两个属性同时加2使得精度变成3并且小数点以下位数变成0。如果"精度<数值"那么精度必须大于数值。例如,如果精度是4 并且小数点以下位数是 5,那么给这两个属性同时加 5 。
    当你在Oracle中指定一个字段值为不是 "NUMBER(精度,数值)"而是 "NUMBER", 它将变成一个数值型表格栏,其精度和小数点以下位数不被限制。 如果"ODBC Drivers"被用来连接,表示为"双精度浮点数"。如果"双精度浮点数"的有效数字不够,你可以在表格栏导入之后更改表格栏类型为"双精度浮点数",所以适当的值可以被分配给精度和小数点以下位数。
    NVARCHAR2 字符(VARCHAR),
    字符(WVARCHAR)
    只有"ODBC Drivers"可以被用来连接。"Oracle Provider for OLE DB"不能被使用。
    如果该表格栏被导入,表示为"字符(VARCHAR)"。它可以被改为"字符(WVARCHAR)"。如果"字符(WVARCHAR)"被指定,Unicode中的字符可以被读取和写入而不用修改。
    因为导入获得的精度是Unicode中的字符数,加倍数目使其成为字节数。
    RAW 二进制,
    二进制(VARBINARY)
    如果"Oracle Provider for OLE DB"被用于连接,表示为"二进制"。"ODBC Drivers"如果"ODBC Drivers"被用来连接,表示为"二进制(VARBINARY)"。
    ROWID 字符(VARCHAR) 只有"ODBC Drivers"可以被用来连接。"Oracle Provider for OLE DB"不能被使用。
    表格栏导入之后,精度将默认是10。更改精度为20。
    VARCHAR2 字符,
    字符(VARCHAR)
    如果"Oracle Provider for OLE DB"被用于连接,表示为"字符"。如果"ODBC Drivers"被用来连接,表示为"字符(VARCHAR)"。


    使用Red Brick

    IBM Red Brick Warehouse所所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于Red Brick的版本。下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    CHAR 字符
    DATE 日期
    DECIMAL 十进制(二进制数),
    十进制(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "十进制(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"十进制(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    DOUBLE 双精度浮点数 它是FLOAT"的同义词。
    FLOAT 双精度浮点数  
    INTEGER 4-字节整数
    NUMERIC 十进制(二进制数),
    十进制(十进制数)
    它是"DECIMAL"的同义词。 更多信息,是指 "DECIMAL"的补充
    REAL 单精度浮点数  
    SERIAL 4-字节整数 一个范围从0 到 2,147,483,647的数值可以被用于输入与输出。
    SMALLINT 2-字节整数
    TIME 时间
    TIMESTAMP 日期时间
    TINYINT 1-字节整数  
    VARCHAR 字符(VARCHAR)  


    使用DB2 Universal Database for Windows

    DB2 Universal Database for Windows 所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于DB2的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    BIGINT 8-字节数字字符串(十进制数)  
    BLOB 二进制 如果导入,表格栏类型将是"未知"。更改类型为"二进制"在导入之后。
    CHARACTER 字符  
    CLOB 二进制,
    字符
    如果导入,表格栏类型将是"未知"。更改类型为"二进制"或"字符"在导入之后。
    DATE 日期  
    DBCLOB 字符(WCHAR) 该字段能被用于读取但是不能用于更新。如果导入,表格栏类型将是"未知"。更改类型为"字符(WCHAR)"在导入之后。
    DECIMAL 十进制(二进制数),
    十进制(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "十进制(二进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"十进制(十进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    DOUBLE 双精度浮点数  
    GRAPHIC 字符(WCHAR) 不要在DB2 Universal Database V7.x中使GRAPHIC类型表格栏因为执行期间将产生错误即使它变为一个"二进制"。
    在DB2 Universal Database V8.x中按如下使用。
    • 不能被用在选择条件或删除条件。
      可以被用在删除关键字表格栏或更新关键字表格栏通过更新SQL DB视表过滤器,因为 SQL 语句方法对删除条件不同。
    • 该表格栏是为固定长度Unicode字符串的。如果数据长度少于指定的表格栏大小,缺少的部分将被双字节空格填充。
    INTEGER 4-字节整数  
    LONGVARCHAR 字符(VARCHAR) 在DB2 Universal Database V8.x中操作但是类型只存在于V7.x.归并VARCHAR在V8.x。
    LONGVARGRAPHIC 字符(WVARCHAR) 在DB2 Universal Database V8.x中操作但是类型只存在于V7.x。归并VARGRAPHIC在V8.x。
    关于更多信息,参照"VARGRAPHIC"的补充。
    REAL 单精度浮点数  
    SMALLINT 2-字节整数  
    TIME 时间  
    TIMESTAMP 日期时间  
    VARCHAR 字符(VARCHAR)  
    VARGRAPHIC 字符(WVARCHAR) 不要在DB2 Universal Database V7.x中使用VARGRAPHIC类型表格栏,因为执行期间将产生错误即使它变为二进制。
    在DB2 Universal Database V8.x中按如下使用。
    • 不能被用在选择条件或删除条件。
      可以被用在删除关键字表格栏或更新关键字表格栏通过更新SQL DB视表过滤器,因为 SQL 语句方法对删除条件不同。


    使用DB2 Universal Database for OS/400

    DB2 Universal Database for OS/400所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于DB2的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    A 字符  
    B 2-字节整数,
    4-字节整数,
    8-字节数字字符串(十进制数)
    导入根据数据库的描述确定。它将按如下进行,
    如果精度1-4 作为 "2-字节整数",如果精度5-9 作为 "4-字节整数",如果精度10-18 作为 "8-字节数字字符串(十进制数)"。
    E 字符  
    F 单精度浮点数,
    双精度浮点数
    导入根据数据库的描述确定。它将按如下进行,如果精度小于等于8,它将成为 "单精度浮点数"如果精度大于等于9,它将成为 "双精度浮点数"。
    G 二进制 如果导入,表格栏类型将是"字符"。 导入之后将类型改为"二进制"。Unicode字符串将在表格栏中被存储但是字符串不能被用作字符数据。
    H 二进制 如果导入,表格栏类型将是"字符"。 导入之后将类型改为"二进制"。
    J 字符  
    L 日期  
    O 字符  
    P 十进制(二进制数),
    十进制(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "十进制(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"十进制(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    S 数字(二进制数),
    数字(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "数字(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"数字(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    T 时间  
    Z 日期时间  

    补充: AS/400中的文件定义
    AS/400中可访问文件使用SQL DB相关连接源信息是只有一个假定为"带记录格式的文件"的文件。"带记录格式的文件"是一个在AS/400操作系统上定义表格栏定义的文件。因为表格栏(字段)由AS/400操作系统分隔,每个表格栏可以使用ODBC访问。
    "带记录格式的文件"将不在导入向导选择表工作表上被演示并且不能通过ODBC被访问(然而,文件可以通过FTP被访问)。



    使用MaxDB

    MaxDB by MySQL所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于MaxDB的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    BOOLEAN 如果该表格栏在选择条件中被指定,选择条件的结果将不正确。不要在选择条件中指定该表格栏,而且连接键连接,以及删除/更新的关键字表格栏SQL DB更新。
    CHAR
    (代码属性: ASCII)
    字符  
    CHAR
    (代码属性: UNICODE)
    字符(WCHAR) 代码属性是"UNICODE"的表格栏只能通过ODBC Drivers(MaxDB (Unicode))的UNICODE版本被访问。 然而,只有一个字节字符可以在代码属性为"ASCII"的表格栏中被使用,因为多字节字符在ODBC Drivers的UNICODE 版本中不被支持。
    除了上面所提到的,代码属性是"UNICODE"的表格栏,可以被导入。然而该表格栏不能被使用。(如果访问将出现错误或者一个不正确结果将被检索到。)
    CHAR
    (代码属性: BYTE)
    二进制  
    DATE 日期  
    FIXED 十进制(二进制数),
    十进制(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "十进制(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"数十进制(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    FLOAT 双精度浮点数  
    INTEGER 4-字节整数  
    LONG
    (代码属性: ASCII)
    字符(LONGVARCHAR) 因为没有定义大小,表格栏精度将是最大值(4096)。必要时调整精度。
    LONG
    (代码属性: UNICODE)
    字符(WLONGVARCHAR) 代码属性是"UNICODE"的表格栏只能通过ODBC Drivers(MaxDB (Unicode))的UNICODE版本被访问。 然而,只有一个字节字符可以在代码属性为"ASCII"的表格栏中被使用,因为多字节字符在ODBC Drivers的UNICODE 版本中不被支持。
    除了上面所提到的,代码属性是"UNICODE"的表格栏,可以被导入。然而该表格栏不能被使用。(如果访问将出现错误或者一个不正确结果将被检索到。)
    如果导入,表格栏精度将是负数。必要时调整精度。
    LONG
    (代码属性: BYTE)
    二进制(LONGVARBINARY) 因为没有定义大小,表格栏精度将是最大值(8192)。必要时调整精度。
    SMALLINT 2-字节整数  
    TIME 时间  
    TIMESTAMP 日期时间  
    VARCHAR
    (代码属性: ASCII)
    字符(VARCHAR)  
    VARCHAR
    (代码属性: UNICODE)
    字符(WVARCHAR) 代码属性是"UNICODE"的表格栏只能通过ODBC Drivers(MaxDB (Unicode))的UNICODE版本被访问。 然而,只有一个字节字符可以在代码属性为"ASCII"的表格栏中被使用,因为多字节字符在ODBC Drivers的UNICODE 版本中不被支持。
    除了上面所提到的,代码属性是"UNICODE"的表格栏,可以被导入。然而该表格栏不能被使用。(如果访问将出现错误或者一个不正确结果将被检索到。)
    VARCHAR
    (代码属性: BYTE)
    二进制(VARBINARY)  


    使用Access

    Microsoft Access所支持的数据类型与以下使用导入向导表格栏类型相匹配。
    在这里,是不支持没有描述的数据类型。
    然而,基于Microsoft Access的版本,下述的数据库中的数据类型,有不能使用的类型。参照相应数据库的手册。
    关于以下注释中的数值型和十进制数类型的详细信息,参照 内部数据类型

    数据类型 本产品的表格栏类型 补充说明
    Number:Byte 1-字节无符号整数  
    Currency Money(十进制数),
    数字(十进制数)
    如果导入,表格栏类型将是"数字(十进制数)"。 在正常情况下,更改类型为"Money(十进制数)"。
    "数字(十进制数)"也可以被使用但是一个适当的值必须被分配精度和小数点以下位数。
    Date/Time 日期时间,
    日期,
    时间
    如果"日期/时间:一般日期" 表格栏被导入, 表格栏类型将是"日期时间"。 按原样使用该类型。
    如果"日期/时间:长日期","日期/时间:中等日期","日期/时间:短日期"表格栏被导入, 表格栏类型将是"日期时间" 但更改类型为"日期"。
    如果"日期/时间:时间" 表格栏被导入, 表格栏类型将是 "日期时间" 但是更改类型为"时间"。
    Number:Double 双精度浮点数  
    Number:Decimal 数字(二进制数),
    数字(十进制数)
    如果精度大于等于15,或者如果小数点以下位数大于等于1,那么表示为 "数字(十进制数)"。如果精度在14以内并且小数点以下位数是0那么表示为"数字(二进制数)"。它需要有效数字在14以内并且小数点以下位数是0那么处理速度可能会提高在选择适当数据类型导入之后。
    Hyperlink 字符(LONGVARCHAR) 只有少于等于255字节的字符数据可以被选择。如果大于256字节的字符数据被用于写入将发生错误。
    Number:Integer 2-字节整数  
    Number:Long Integer 4-字节整数  
    Memo 字符(LONGVARCHAR)  
    OLE Object 二进制(LONGVARCHAR)  
    Number:Replication ID 字符 如果导入,表格栏类型将是"未知"。 更改类型为"字符r"。
    它可以被用于读取和写入带有字符串格式像"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"。 ("x" 将是一个十六进制字符 (0-9A-F)。)
    Number:Single 单精度浮点数  
    Text 字符(VARCHAR)  
    有/无 NULL 在该类型中不被支持。 使用此类型指定其 NULL 标准 属性为 "不允许"。


    使用Excel

    单元格中的Microsoft Excel数据与以下使用导入向导表格栏类型相匹配。
    在Excel中的数据,不像其它数据库,"数据类型"的规范不存在。相应表格栏类型被自动定义为单元格的输入文本。
    在这里,是不支持没有描述的数据类型。
    关于以下注释中的数值型和十进制数类型的详细信息,参照
    内部数据类型。  

    Excel数据值 本产品的表格栏类型 补充说明
    Text 字符(VARCHAR),
    字符(LONGVARCHAR)
    该表格栏数据是一个不能作为其它数据类型被读取的字符数据。当该表格栏被扫描和自动设置作为一个数据类型而不是"字符"数据类型,那么该表格栏不能作为"字符"数据类型被读取。为了以"字符"数据类型读取该表格栏数据,你必须明确定义表格栏类型为"字符"数据类型通过向每个表格栏数据的第一个字符追加一个单引号"'"。
    一个表格栏包含少于等于 255字节的字符数据时被设置为"字符(VARCHAR)"当其被导入时。一个表格栏包含大于 255字节的字符数据时被设置为"字符(LONGVARCHAR)"当其被导入时。
    如果表格栏数据的第一个字符是一个单引号字符"'",并且如果那个表格栏数据作为字符数据类型被读取时,那么"'"被从中删除的表格栏数据被检索。
    如果其它数据类型表格栏如数字被分配给该数据类型,那么一个单引号字符"'"被追加到输出数据的第一个字符。
    Error value 字符(VARCHAR) Excel中的错误值如"#VALUE!", "#DIV/0!", "#NAME?", "#N/A", "#REF!", "#NUM!",以及"#NULL!"作为"字符(VARCHAR)"被导入。然而,当它们被读取时这些值变为 NULL。 (错误值将不会作为像"#VALUE!"这样的字符数据被读取。)
    该表格栏数据是不可更新的。"#NULL!"不被写入到 Excel输出文件中。当 NULL 值被写入到 Excel 输出文件中,"#NULL"数据不被写入但是对应于Excel文件中单元格格式的正确值被写入。对于输出表格栏的正确操作,为NULL标志指定"不允许"。
    Number 双精度浮点数 该表格栏数据是一个包含小数点和符号的数据。
    Currency 数字(二进制数),
    数字(十进制数)
    该表格栏数据是一个"currecny 标记 + 数字值"格式的值。
    当该表格栏被导入时,默认情况下,4被指定为小数点以下位数。更改小数点以下位数为正确的值。
    当小数点以下位数大于等于1,通过将表格栏类型改为"数字(十进制数)",该表格栏值可以被阻止四舍五入。有效数字不增加即使表格栏类型变为"数字(十进制数)"因为Excel中所使用的内部数据类型几乎等同于双精度浮点打印数。
    该表格栏数据是不可更新的。当该表格栏值被写入时,输出值是一个"数字"类型值而不是"Currency"类型。
    Percentage 双精度浮点数 该表格栏数据是一个百分比数值。
    当百分比表格栏数据被读取,可以获得一个百分比数值转换后的数字值。例如,如果百分比表格栏数据"99.9%"被读取,获得的数字值是"0.999"。
    该表格栏数据是不可更新的。当该表格栏值被写入时,输出值是一个"数字"类型值而不是"百分比"。
    Logical value 该表格栏数据是一个0 (FALSE) 或者 1 (TRUE)的数字值。
    Date and time 日期时间 该表格栏数据是一个"M/D/YYYY H:MM:SS"格式的日期时间值。
    Date 日期 该表格栏数据是一个"M/D/YYYY"格式的数据值。
    当该表格栏数据被导入,"日期时间"类型被自动设置。更改类型为"日期"。如果没有,一个完整的时间("0:00:00")被自动包含在输入/输出数据的时间部分("H:MM:SS")。
    Time 时间 该表格栏数据是一个"H:MM:SS"格式的时间值。
    当该表格栏数据被导入,"日期时间"类型被自动设置。更改类型为"时间"。如果没有,默认日期("12/30/1899")被自动包含在输入/输出数据的日期部分("M/D/YYYY")。然而,因为日期"12/30/1899"是不在本产品所支持的日期范围之内的,将发生一个读取错误。

    补充: Excel 文件设置
    在Excel文件中必须为单元格(单元格的访问区域)定义一个"名称"。关于定义一个"名称"的详细信息,参照Microsoft Excel 在线帮助。
    带SQL DB连接源信息视表带更新SQL DB连接源信息视表表名指定定义于你的Exce文件中相同"名称"。Excel文件名当数据源名注册于ODBC 数据源管理器(Windows控制面板管理工具中的Data Sources (ODBC))时被指定。该源名被指定为用于视表中连接源信息的数据源名。访问单元格区域通过为视表指定表名被选择。
    命名单元格中的一列代表一个表格栏并且命名单元格中视表的一行代表视表的一个记录。每个单元格第一行的值代表每个表格栏名并且数据其余部分代表表格栏数据。
    因为在Excel中没有数据类型的概念,每个表格栏的兼容表格栏类型通过在命名单元格中从第二行开始扫描每行被获得。
    因此,每个表格栏(在命名单元格中从第二行开始)的数据格式需要有固定格式。如果值不是固定格式,每行的读取值不能被执行。
    注意即使数字数据存在的单元格被变成"Text" 格式关于 格式单元格 在 Excel 文件中,这些单元格将不能作为"字符"表格栏类型被读取。你必须通过向单元格中每个值的第一个字符追加一个单引号字符"'" 来明确定义表格栏类型。

    补充: 更新方法
    更新SQL DB视表过滤器属性 必须被用来更新 Excel 文件。它不能通过设置视表连接其它视表过滤器的输出视表的Excel文件来更新Excel文件中的数据。
    下面的设置在更新SQL DB视表过滤器中是必须的。

    ODBC 数据源管理器(Windows控制面板管理工具中的Data Sources (ODBC))的"Microsoft Excel Driver "中有一个选项,其为数据源定义指定只读。因为该选项默认被选定(只读),需要被清除为了执行更新功能。

    补充: 独占控制
    当访问 Excel 文件时,互斥访问是必须的。
    然而,excel Drivers不能像其它数据库一样提供独占控制。正因如此,当执行使用Excel文件的作业或当从Excel文件中导入数据,或者当显示Excel文件的预览时,不能通过任何应用程序使一个作业来打开Excel文件。
    此外,在同一作业中相同的 Excel文件不能被同时访问。 通过对作业使用执行优先级设置,使得当文件被访问时 Excel 文件总是被独占访问。



    使用带ODBC Drivers的其它数据库

    使用"ODBC Drivers",可以连接各种支持ODBC连接的数据库通过SQLDB格式设定对话框中数据库的配置特点。通过本产品的输入向导获得的表格栏类型由"SQL类型"来确定。 "SQL类型"抽取 每个数据库中定义的"数据库中的数据类型"。
    本产品连接什么表格栏类型 "SQL类型"依赖于ODBC Bind设定对话框中的设置。
    对于"SQL类型" 与"数据库中的数据类型"之间的一致性信息,看每个数据库的手册。
    即使表格栏被成功导入在SQLDB格式设定 对话中那个表格栏被正确设置之后,表格栏值可能不被读取。
    因为通过"ODBC Drivers"访问的数据库可能返回一个非法控制信息(很少),读取过程不能被成功执行。在那种情况下,在ODBC Bind设定对话框ODBC 绑定设置方法中选择"手动"之后,需要在ODBC Bind设定上进行适当的设置。
    你应该很好地评估一个新的数据库和一个新的数据类型,在实现它们之前。
    根据表格栏要求的精度,像内部数据类型是数值型和十进制数类型的 "数值(二进制数)" 与 "数值(十进制数)"是可交换的。关于数值型和十进制数类型的详细信息,查看内部数据类型的信息。