3

我正在尝试在 SSIS 表达式(作为新列)中计算 SIN 和 COS,但我找不到任何表达式。

例如:

SIN(lat_org_rad) COS(long_org_rad) ACOS(long_org_rad)

有人可以帮助我吗?

谢谢

4

2 回答 2

1

TLDR: COS() , SIN(),ACOS()不能使用 SSIS 表达式来实现,您必须编写一个脚本组件来使用System.Math程序集来实现,该程序集是 .NET 框架的一部分。


详细解答

我正在写这个答案作为 OP 所写答案的附加信息:

SSIS 表达式语言包括一组用于表达式的函数,它们可以分为以下几组:

  • 数学函数
  • 字符串函数
  • 日期和时间函数
  • 系统功能

下表(官方文档)包含 SSIS 表达式语言支持的数学函数:

在此处输入图像描述

基于此,SSIS 表达式语言没有提供COS(),SIN()和功能。ACOS()

脚本组件

另一方面,您可以使用 System.Math 程序集从脚本组件转换中受益,以获得更高级的数学函数,其中包含以下文档中列出的高级方法:


参考

于 2019-04-29T19:02:43.840 回答
0

我能够使用脚本组件解决问题:

public override void Entrada0_ProcessInputRow(Entrada0Buffer Row)
{
    if (Row.latdestrad == 0)
    {
        Row.kms = 0;
    }
    else
    {
        Row.kms = Math.Acos(
            (Math.Sin(Row.latorgrad) * (Math.Sin(Row.latdestrad))) +
            (Math.Cos(Row.latorgrad) * (Math.Cos(Row.latdestrad)) * Math.Cos(Row.londestrad - Row.lonorgrad)))
            * 57.29577951 * 111.302;
    }
}
于 2019-04-29T12:16:15.357 回答