“项目设置”对话框的“类型映射”页面包含一些设置,用来自定义 SSMA 如何将 Oracle 数据类型转换为 SQL Server 数据类型。
“项目设置”和“默认项目设置”对话框中都提供了“类型映射”页面。
要指定用于将来所有 SSMA 项目的设置,请在“工具”菜单上单击“默认项目设置”,从“迁移目标版本”下拉列表中选择需要查看或更改其设置的迁移项目类型,然后单击左侧窗格底部的“类型映射”。
要指定用于当前项目的设置,请在“工具”菜单上单击“项目设置”,然后单击左侧窗格底部的“类型映射”。
要指定当前对象或对象类的设置,请使用主 SSMA 窗口中的“类型映射”选项卡。
选项
下表显示“类型映射”选项卡选项。
源类型
映射的 Oracle 数据类型。
目标类型
指定的 Oracle 数据类型的目标 SQL Server 数据类型。
请参阅下一部分中的表,以了解默认的 SSMA for Sybase 类型映射。
添加
单击此项可向映射列表添加数据类型。
编辑
单击此项可编辑映射列表中的所选数据类型。
删除
单击此项可从映射列表中移除所选数据类型映射。
重置为默认值
单击此项可将类型映射列表重置为 SSMA 默认值。
默认类型映射
在 SSMA for Oracle 中,可以为参数、列、局部变量和返回值设置自定义类型映射。 参数和返回类型的默认映射几乎完全相同。
默认参数类型和返回值类型映射
下表包含参数和返回值的默认数据类型映射。
| Oracle 数据类型 | 默认 SQL Server 数据类型 |
|---|---|
| bfile | varbinary(max) |
| binary_double | float[53] |
| binary_float | float[53] |
| binary_integer | int |
| blob | varbinary(max) |
| boolean | bit |
| 字符型 | varchar(max) |
| 可变字符 | varchar(max) |
| 字符 | varchar(max) |
| 可变字符 | varchar(max) |
| Clob | varchar(max) |
| date | datetime2[0] |
| dec | dec[38][0] |
| 十进制 | float[53] |
| 双精度 | float[53] |
| float | float[53] |
| int | int |
| 整数 | int |
| long | varchar(max) |
| 长二进制数据 (long raw) | varbinary(max) |
| long raw[*..8000]* | varbinary[*] |
| long raw[8001..*]* | varbinary(max) |
| 国家字符 | nvarchar(max) |
| 可变国家字符 | nvarchar(max) |
| 国别字符 | nvarchar(max) |
| 国家字符变化** | nvarchar(max) |
| 国家字符变化* | nvarchar(max) |
| nchar | nvarchar(max) |
| nclob | nvarchar(max) |
| 数字 | float[53] |
| numeric | float[53] |
| nvarchar2 | nvarchar(max) |
| pls_integer | int |
| raw | varbinary(max) |
| real | float[53] |
| rowid | uniqueidentifier |
| signtype | smallint |
| smallint | smallint |
| 字符串 | varchar(max) |
| 时间戳 | datetime2 |
| 具有本地时区的时间戳 | datetimeoffset |
| 具有时区的时间戳 | datetimeoffset |
| urowid | uniqueidentifier |
| varchar | varchar(max) |
| varchar2 | varchar(max) |
| xmltype | xml |
* 仅适用于返回值类型映射。
** 仅适用于参数类型映射。
默认列类型映射
下表包含列的默认类型映射。
| Oracle 数据类型 | 默认 SQL Server 数据类型 |
|---|---|
| bfile | varbinary(max) |
| binary_double | float[53] |
| binary_float | float[53] |
| blob | varbinary(max) |
| 字符型 | 字符型 |
| 字符变长[*..*] | varchar[*] |
| char[*..*] | char[*] |
| 字符 | 字符型 |
| 可变字符[*..*] | varchar[*] |
| character[*..*] | char[*] |
| Clob | varchar(max) |
| date | datetime2[0] |
| dec | dec[38][0] |
| dec[*..*] | dec[*][0] |
| dec[*..*][*..*] | dec[*][*] |
| 十进制 | decimal[38][0] |
| decimal[*..*] | decimal[*][0] |
| decimal[*..*][*..*] | decimal[*][*] |
| 双精度 | float[53] |
| float | float[53] |
| float[*..53] | float[*] |
| float[54..*] | float[53] |
| int | int |
| 整数 | int |
| long | varchar(max) |
| 长原始 | varbinary(max) |
| long raw[*..8000] | varbinary[*] |
| long raw[8001..*] | varbinary(max) |
| 长 varchar | varchar(max) |
| long[*..8000] | varchar[*] |
| long[8001..*] | varchar(max) |
| 国家字符 | nchar |
| 国家字符可变[*..*] | nvarchar[*] |
| 国家字符[*..*] | nchar[*] |
| 国家字符 | nchar |
| 国家字符变化[*..*] | nvarchar[*] |
| 国家字符[*..*] | nchar[*] |
| nchar | nchar |
| nchar[*] | nchar[*] |
| nclob | nvarchar(max) |
| 数字 | float[53] |
| number[*..*] | numeric[*] |
| number[*..*][*..*] | numeric[*][*] |
| numeric | numeric |
| numeric[*..*] | numeric[*] |
| numeric[*..*][*..*] | numeric[*][*] |
| nvarchar2[*..*] | nvarchar[*] |
| raw[*..*] | varbinary[*] |
| real | float[53] |
| rowid | uniqueidentifier |
| smallint | smallint |
| 时间戳 | datetime2 |
| 具有本地时区的时间戳 | datetimeoffset |
| 具有本地时区的时间戳[*..*] | datetimeoffset[*] |
| 具有时区的时间戳 | datetimeoffset |
| 时间戳(时区)[*..*] | datetimeoffset[*] |
| timestamp[*..*] | datetime2[*] |
| UROWID | uniqueidentifier |
| urowid[*..*] | uniqueidentifier |
| varchar[*..*] | varchar[*] |
| varchar2[*..*] | varchar[*] |
| Xmltype | xml |
默认局部变量类型映射
下表包含局部变量的默认类型映射。
| Oracle 数据类型 | 默认 SQL Server 数据类型 |
|---|---|
| Bfile | varbinary(max) |
| binary_double | float[53] |
| binary_float | float[53] |
| binary_integer | int |
| Blob | varbinary(max) |
| 布尔 | bit |
| Char | 字符型 |
| char varying[*..8000] | varchar[*] |
| char varying[8001..*] | varchar(max) |
| char[*..8000] | char[*] |
| char[8001..*] | varchar(max) |
| 字符 | 字符型 |
| 可变字符[*..8000] | varchar[*] |
| 可变字符[8001..*] | varchar(max) |
| character[*..8000] | char[*] |
| character[8001..*] | varchar(max) |
| Clob | varchar(max) |
| date | datetime2[0] |
| dec | dec[38][0] |
| dec[*..*] | dec[*][0] |
| dec[*..*][*..*] | dec[*][*] |
| 十进制 | decimal[38][0] |
| decimal[*..*] | decimal[*][0] |
| decimal[*..*][*..*] | decimal[*][*] |
| 双精度 | float[53] |
| 浮点 | float[53] |
| float[*..53] | float[*] |
| float[54..*] | float[53] |
| int | int |
| Integer | int |
| integer[*..*] | numeric[*][0] |
| Long | varchar(max) |
| long raw | varbinary(max) |
| long raw[*..8000] | varbinary[*] |
| long raw[8001..*] | varbinary(max) |
| national char | nchar |
| 国家字符可变长度[*..4000] | nvarchar[*] |
| national 字符变化[4001..*] | nvarchar(max) |
| 国家字符[*..4000] | nchar[*] |
| 国民字符[4001..*] | nvarchar(max) |
| 国家字符 | nchar |
| 国家字符[*..4000] | nvarchar[*] |
| 民族性格[4001..*] | nvarchar(max) |
| 国家字符变化 [*..4000] | nvarchar[*] |
| 国家字符变异 [4001..*] | nvarchar(max) |
| Nchar | nchar |
| nchar[*..4000] | nchar[*] |
| nchar[4001..*] | nvarchar(max) |
| nchar varying[*..4000] | nvarchar[*] |
| nchar varying [4001..*] | nvarchar(max) |
| NClob | nvarchar(max) |
| Number | float[53] |
| number[*..*] | numeric[*] |
| number[*..*][*..*] | numeric[*][*] |
| 数字 | numeric[38][0] |
| numeric[*..*] | numeric[*] |
| numeric[*..*][*..*] | numeric[*][*] |
| nvarchar2[*..4000] | nvarchar[*] |
| nvarchar2[4001..*] | nvarchar(max) |
| pls_integer | int |
| raw[*..8000] | varbinary[*] |
| raw[8001..*] | varbinary(max) |
| 雷亚尔 | float[53] |
| Rowid | uniqueidentifier |
| Signtype | smallint |
| Smallint | smallint |
| string[*..8000] | varchar[*] |
| string[8001..*] | varchar(max) |
| 时间戳 | datetime2 |
| 具有本地时区的时间戳 | datetimeoffset |
| 具有时区的时间戳 | datetimeoffset |
| 具有本地时区的时间戳[*..*] | datetimeoffset[*] |
| 时间戳(时区)[*..*] | datetimeoffset[*] |
| timestamp[*..*] | datetime2[*] |
| UROWID | uniqueidentifier |
| urowid[*..*] | uniqueidentifier |
| varchar[*..8000] | varchar[*] |
| varchar[8001..*] | varchar(max) |
| varchar2[*..8000] | varchar[*] |
| varchar2[8001..*] | varchar(max) |
| Xmltype | xml |