我正在尝试在 SSIS 表达式(作为新列)中计算 SIN 和 COS,但我找不到任何表达式。
例如:
SIN(lat_org_rad) COS(long_org_rad) ACOS(long_org_rad)
有人可以帮助我吗?
谢谢
我正在尝试在 SSIS 表达式(作为新列)中计算 SIN 和 COS,但我找不到任何表达式。
例如:
SIN(lat_org_rad) COS(long_org_rad) ACOS(long_org_rad)
有人可以帮助我吗?
谢谢
TLDR: COS()
, SIN()
,ACOS()
不能使用 SSIS 表达式来实现,您必须编写一个脚本组件来使用System.Math程序集来实现,该程序集是 .NET 框架的一部分。
我正在写这个答案作为 OP 所写答案的附加信息:
SSIS 表达式语言包括一组用于表达式的函数,它们可以分为以下几组:
下表(官方文档)包含 SSIS 表达式语言支持的数学函数:
基于此,SSIS 表达式语言没有提供COS()
,SIN()
和功能。ACOS()
另一方面,您可以使用 System.Math 程序集从脚本组件转换中受益,以获得更高级的数学函数,其中包含以下文档中列出的高级方法:
我能够使用脚本组件解决问题:
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;
}
}