Bạn mắc lỗi chính tả và cách đặt tên không nhất quán nên thật khó để nói chính xác bạn đang thực sự làm gì để gặp lỗi đó, nhưng nó hoạt động nếu bạn sử dụng string-length()
từ ví dụ DB2 của bạn, thay vì length()
(hoặc lenght()
):
"address" varchar2(15) path 'address/(if(string-length(.)<=15) then . else "Error!")'
Với dữ liệu được sửa đổi để kích hoạt hành vi lỗi:
select *
from XMLTABLE ('customers/*'
passing xmltype('<customers>
<customer>
<name>abc</name>
<surname>abc</surname>
<address>abc def ghi jkl mno</address>
</customer>
<customer>
<name>abc</name>
<surname>abc</surname>
<address>abc</address>
</customer>
</customers>')
columns
"address" varchar(15) path 'address/(if(string-length(.)<=15) then . else "Error!")'
) data;
address
---------------
Error!
abc