SSIS · Тригонометрические функции - PullRequest
3 голосов
/ 29 апреля 2019

Я пытаюсь вычислить SIN и COS в выражении SSIS (как новый столбец), но не могу найти какое-либо выражение.

Например:

image

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

Может ли кто-нибудь мне помочь?

Спасибо

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

TLDR: COS(), SIN(), ACOS() не может быть достигнуто с помощью выражения SSIS, вам нужно написать компонент сценария, чтобы добиться этого с помощью System.Math сборки, котораяявляется частью .NET Framework.


Подробный ответ

Я пишу этот ответ в качестве дополнительной информации для ответа, написанного OP:

Выражение SSISязык включает в себя набор функций для использования в выражениях, и их можно разделить на следующие группы:

  • Математические функции
  • Строковые функции
  • Функции даты и времени
  • Системные функции

Следующая таблица (официальная документация) содержит математические функции, поддерживаемые в языке выражений SSIS:

enter image description here

Исходя из этого, в языке выражений служб SSIS не предусмотрены функции COS(), SIN() и ACOS().

Компонент сценария

С другой сторонывы можете извлечь выгодуиз преобразования «Компонент сценария» для более сложных математических функций с использованием сборки System.Math, которая содержит расширенные методы, перечисленные в следующей документации:


Ссылки

0 голосов
/ 29 апреля 2019

Мне удалось решить проблему с помощью компонента Script:

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;
    }
}
...