Проверка формата адреса IPV6 в Oracle 9i pl sql без использования функции Reg exp
Я пытаюсь проверить правильность ввода формата адреса IPV6 в моем клиентском приложении с использованием PL/SQL в Oracle 9i. Я искал во многих местах, и то, что я могу найти, говорит об использовании REGEXP_LIKE, но это не поддерживается в Oracle 9i:
if ( /* IPv6 expanded */
REGEX_LIKE(v, '\A[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}\z', 'i')
/* IPv6 shorthand */
OR (NOT REGEX_LIKE(v, '\A(.?[a-f0-9](:|\z)){8}', 'i')
AND REGEX_LIKE(v, '\A([a-f0-9]{1,4}(:[a-f0-9]{1,4}){0,6})?::([a-f0-9]{1,4}(:[a-f0-9]{1,4}){0,6})?\z', 'i'))
) then
Чтобы достичь этого, я использую регулярное выражение, показанное выше, но получаю сообщение об ошибке "PLS-00201: должен быть объявлен идентификатор" REGEX_LIKE "". Кто-нибудь может подсказать, как реализовать такую же проверку в Oracle 9i-совместимом PL/SQL?
Я пытаюсь сохранить адрес IPV6 в формате xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/yyy
где минимальное и максимальное значение xxxx
между 0000 и FFFF и yyy
от 0 до 128.