Oracle数据库导入MS-SQL出现类型不一致问题

lovelyboy923 2011-02-14 04:15:25
我Oracle数据库中的JS字段类型为NUMBER。利用DTS导入时,MS-SQL中无法与之对应类型

错误如下:
DTS.Pipeline: “输出列“JS”(29)”的精度无效。此精度必须介于 1 和 38 之间。

我试过很多类型:float、decimal、numeric、bigint
...全文
248 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelyboy923 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fleey 的回复:]

这个问题没有后文了?我也碰到了同样的问题,源数据oracle表中有NUMBER(16,2)的字段,大致看了一下,没有非法数据。导入到sqlserver中就不行了.....
[/Quote]

我后来自己用的excel连接Oracel,将数据导出,在将excel导入到SQL Server的
fleey 2011-09-12
  • 打赏
  • 举报
回复
这个问题没有后文了?我也碰到了同样的问题,源数据oracle表中有NUMBER(16,2)的字段,大致看了一下,没有非法数据。导入到sqlserver中就不行了.....
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 acherat 的回复:]
估计你的原数据有超过精度是38的。

select max(len(字段))
from tb

试试看有多大!……
[/Quote]

只有7位 郁闷了的
AcHerat 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lovelyboy923 的回复:]
引用 10 楼 acherat 的回复:

SQL code

--看看你数据里小数点后边最多有多少位,然后看看前边和后边加起来有多少位!


我精度设置的38小数点设置的10肯定可以啊 就是还失败
[/Quote]

估计你的原数据有超过精度是38的。

select max(len(字段))
from tb

试试看有多大!
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 acherat 的回复:]

SQL code

--看看你数据里小数点后边最多有多少位,然后看看前边和后边加起来有多少位!
[/Quote]

我精度设置的38小数点设置的10肯定可以啊 就是还失败
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dawugui 的回复:]
如果在oracle中,该列没有小数的话,更改该列的属性为整型(INT),然后再导.
如果有小数的话,自己设置一下该列的属性,例如整数多少位,小数多少位,然后再导.
[/Quote]

你QQ多少 我加你 我截图你看 我试了 不行 郁闷
dawugui 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lovelyboy923 的回复:]
就是直接设置的number 没有进行限制整数和小数的位数[/Quote]
如果在oracle中,该列没有小数的话,更改该列的属性为整型(INT),然后再导.
如果有小数的话,自己设置一下该列的属性,例如整数多少位,小数多少位,然后再导.
AcHerat 2011-02-14
  • 打赏
  • 举报
回复

--看看你数据里小数点后边最多有多少位,然后看看前边和后边加起来有多少位!
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dawugui 的回复:]

引用 5 楼 lovelyboy923 的回复:
引用 3 楼 dawugui 的回复:

引用 2 楼 lovelyboy923 的回复:
我设置了整数位和小数位,没用

你oracle中number的数据有多大?整数位和小数位各有多少,难不成大到sql server不能支持?


直接默认的number

什么叫直接默认的number.
你在oracle中看看你该列的……
[/Quote]
就是直接设置的number 没有进行限制整数和小数的位数
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 acherat 的回复:]

SQL code

--你设置大点试试, numeric(38,10) 或 decimal(38,8) 等等。
[/Quote]
试过了 不行
dawugui 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lovelyboy923 的回复:]
引用 3 楼 dawugui 的回复:

引用 2 楼 lovelyboy923 的回复:
我设置了整数位和小数位,没用

你oracle中number的数据有多大?整数位和小数位各有多少,难不成大到sql server不能支持?


直接默认的number
[/Quote]
什么叫直接默认的number.
你在oracle中看看你该列的最大整数位和最大小数位个是多少?
AcHerat 2011-02-14
  • 打赏
  • 举报
回复

--你设置大点试试, numeric(38,10) 或 decimal(38,8) 等等。
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawugui 的回复:]

引用 2 楼 lovelyboy923 的回复:
我设置了整数位和小数位,没用

你oracle中number的数据有多大?整数位和小数位各有多少,难不成大到sql server不能支持?
[/Quote]

直接默认的number
快溜 2011-02-14
  • 打赏
  • 举报
回复
这么纠结,能否将Oracle数据导入execl,再从execl导入mssql?
dawugui 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lovelyboy923 的回复:]
我设置了整数位和小数位,没用
[/Quote]
你oracle中number的数据有多大?整数位和小数位各有多少,难不成大到sql server不能支持?
lovelyboy923 2011-02-14
  • 打赏
  • 举报
回复
我设置了整数位和小数位,没用
dawugui 2011-02-14
  • 打赏
  • 举报
回复
oracle的number类型对应于sql server就是decimal , numeric.你还需要对应更改整数位和小数位.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧