Это мой XML в столбце XMLTYPE:
<customers>
<customer>
<name>abc</name>
<surname>abc</surname>
<address>abc</address>
</customer>
<customer>
<name>abc</name>
<surname>abc</surname>
<address>abc</address>
</customer>
</customers>
Я хочу, чтобы, если длина поля превышает допустимую длину, 15 символов, вместо этого использовалось значение по умолчанию.
В руководстве по DB2 я нашел этот пример:
select ...from .., XMLTABLE
('$INFO/customerinfo*' passing
columns
city varchar(16) path a'addr/city(if(string-lenght(.)<=16) then . else "Error!")'
) ..
Как я могу сделать это в Oracle? Это моя текущая попытка XMLTABLE:
select ..XMLTABLE
('customers/*' passing ..
columns
...
"address" varchar(15) path 'indirizzo/(if(lenght(.)<=15) then . else "Error!")'
) data;
Но получается:
ОРА-19237. невозможно разрешить вызов функции -fn:length