Я не владею оракулом SQL, но это подход без преобразования в строку (что будет быстрее).В основном, делайте мод + деление, чтобы получить каждое другое число и добавлять их.
DECLARE testNumber integer := 123
SELECT
testNumber,
MOD(testNumber, POWER(10, 1)) +
MOD(testNumber, POWER(10, 2)) / POWER(10, 1) +
MOD(testNumber, POWER(10, 3)) / POWER(10, 2) +
MOD(testNumber, POWER(10, 4)) / POWER(10, 3) +
MOD(testNumber, POWER(10, 5)) / POWER(10, 4) +
MOD(testNumber, POWER(10, 6)) / POWER(10, 5) +
MOD(testNumber, POWER(10, 7)) / POWER(10, 6)
FROM
DUAL
Придется добавлять суммы до максимального количества позиций, которые вы можете получить.