【问题标题】:Importing Data from a CSV with Scientific Notation field into Open Edge将带有科学记数法字段的 CSV 数据导入 Open Edge
【发布时间】:2019-01-28 18:55:32
【问题描述】:

我正在将包含科学记数法字段的 CSV 文件中的数据导入 Open Edge ( Progress )。

问题似乎是 Open Edge 不直接处理科学记数法。

所以,我收到一个错误:

** 数字输入 E 中的无效字符。(76)

如何读取信息并获取十进制值以使用它。

欢迎任何进一步的解决方案!

【问题讨论】:

  • 你是对的。 OpenEdge 本身不支持科学记数法。
  • 我正在考虑将表从 SQL Server 上传到 Progress... ¿有没有办法通过这种方式解决这个问题?只是想知道,因为在 sql server 中该字段是十进制的?
  • 这取决于您要如何上传。如果您使用的中间程序可以连接到两个数据库,并且理解两者的数据类型并且可以将一个分配给另一个,那么,当然,没问题。但在您原来的情况下,您有一些文本以 OpenEdge 本身无法理解的方式格式化,您正在尝试使用 OE 工具来加载它。
  • 没错!!,现在我将通过open edge上的程序使用信息并获取信息。但是,我正在考虑通过 SSIS 包将信息上传到 MSSQL,然后任何程序都可以在进行中的数据库中使用它,但是构建包时遇到了很多问题,所以我去纯文本上传并得到这不太常见情况(科学记数法)....我有 5 年的进步,从来没有意识到这一点.... :)

标签: openedge scientific-notation


【解决方案1】:

我现在的解决方案是,将其读取为字符并将指数分开,然后将它们重新组合成一个公式:

def var a as char.

def var f 为十进制。

a = "4.7760555321528834E-2"。

f = decimal(entry(1,a,"E")) * exp(10,decimal(entry(2,a,"E")))。

显示格式“X(20)”跳过。

显示格式“>>>>>>>>>>9.999999999”。

【讨论】:

  • 从 csv 导入时,我通常将所有内容作为字符导入,然后进行处理。通过这种方式,您可以更好地控制错误处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
相关资源
最近更新 更多