API jOOQ не может помочь вам в этом из коробки, потому что такая функциональность определенно выходит за рамки относительно низкоуровневого API jOOQ, который помогает вам писать безопасный встроенный SQL типа. Он не делает никаких предположений о вашей бизнес-логике или логике инфраструктуры.
В идеале, вы будете проводить собственную диагностику здесь. Например, у вас уже есть столбец BATCHID
, который должен позволить определить, какие записи были добавлены / обновлены каким процессом. При повторном запуске пакета вам необходимо обнаружить, что вы уже пытались выполнить этот пакет, запомнить предыдущий BATCHID
и получить IDs
предыдущей попытки сделать все, что нужно сделать до повторного запуска. запустить.
Говорите с этим парнем, у него могли бы быть некоторые идеи для Вас. В целом английский язык слишком неоднозначен для этого типа вещи. Например:
Бумага сокращения в половине.
Действительно ли это - властный приказ или часть предложения прошедшего времени? И мой любимый:
Время летит как стрелка; дрозофилы как банан.
Любой человек может проанализировать это, но только из-за большого семантического знания.
Однако существуют некоторые вещи, которые могло бы стоить изучить, как SharpNLP
Как другие заявили, это - очень тяжелая проблема и не было решено в общем случае. Однако существуют некоторые системы, которые делают вполне прилично. WordNet Принстона является одним из них. Это может определить части речи, синонимы, и т.д. (возможно, включая время) с определенной степенью точности. Я думаю, что можно интересоваться этими функциями, которые, кажется, находят корень слова, учитывая конкретное спряжение и могут также смочь найти конкретное спряжение, учитывая корень (но та страница не обеспечивает примеры, таким образом, я не могу быть уверен, что интерпретирую документы правильно).
Проверьте это, это назвало Grammatica. Это не может быть точно, что Вы, после, но это - определенно хорошее начало к парсингу английских грамматических правил в C#.
Короткий ответ не, общие механизмы парсинга обработки естественного языка не существуют.
Длинный ответ - "своего рода", но существует 50 лет исследования, показывающего, что это - Очень тяжелая проблема в общем случае. Могли бы быть делающие определенные напряженные преобразования. Независимо, C#, вероятно, не будет иметь того.