Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Verifique o comprimento da coluna em XMLTable


Você tem erros de digitação e nomenclatura inconsistente, então é difícil dizer exatamente o que você realmente está fazendo para obter esse erro, mas funciona se você usar o string-length() função do seu exemplo do DB2, em vez de length() (ou lenght() ):
"address" varchar2(15) path 'address/(if(string-length(.)<=15) then . else "Error!")' 

Com dados modificados para acionar o comportamento de erro:
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