На моем портале электронной коммерции я получаю EAN-коды продуктов от дистрибьюторов.Я хочу завершить коды EAN-12, вычисляя контрольную сумму и возвращая EAN-13.
Исходные коды считываются из таблицы SQL Server и копируются в другую базу данных SQL Server.через хранимую процедуру.
Я хотел бы вычислить цифру контрольной суммы внутри существующей хранимой процедуры, не добавляя другие слои программирования.Алгоритм вычисления контрольной суммы основан на маске цифр (он умножает цифры EAN на значения позиционного веса, суммирует результаты и вычисляет разницу со следующим большим 10 кратным).
Довольно просто, UDF мог быреализовать алгоритм, но он требует использования временной таблицы для обработки операций над цифрами, а SQL Server не позволяет использовать временные таблицы внутри UDF !!Знаете ли вы какие-нибудь обходные пути?
Детали алгоритма и пример:
EAN-12: 7 2 5 1 8 4 6 6 0 4 0 5
weights: 1 3 1 3 1 3 1 3 1 3 1 3
multip: 7 6 5 3 8 12 6 18 0 12 0 15
sum: 92
checksum: 8 (= 100 - 92)