首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle ODP.NET BulkCopy数字格式问题

Oracle ODP.NET BulkCopy数字格式问题
EN

Stack Overflow用户
提问于 2011-02-16 15:00:07
回答 1查看 414关注 0票数 0

我正在使用ODP.NET BulkCopy将数据从dataTable复制到oracle数据库表。在我的datatable中,字段是字符串,因此数字可以表示为"123,456,789.111“(正确的格式)或"123.456.789,111”(datatable中可能出现的一种不相关格式)。在这种情况下,我希望在db中插入转换的数据。有没有一种方法可以使用BulkCopy来解决这个问题,或者我必须解析dataTable并手动转换所有错误的值?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-02-16 18:57:38

我想更好的方法是将数字存储为数字(因为这是正确的数字数据类型)。

当涉及到表示数字时,我会使用to_char(<number goes here>, '999g999g999d999')

编辑:好了,我想我现在明白了。这些数字的格式已经错误。我不知道您是否可以在您的流程中使用case .. when,但这可能会给您一个想法:

代码语言:javascript
复制
with data_table as (
  select '123,456,789.111' as n from dual union all
  select         '789.111' as n from dual union all
  select          '-2.345' as n from dual union all
  select '777.777.777,777' as n from dual
) select
case when
  n like '%.%,%' 
    then to_number(n, '999g999g999d999', 'nls_numeric_characters='',.''') 
    else to_number(n, '999g999g999d999', 'nls_numeric_characters=''.,''') 
  end
from data_table; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5013411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档