Oracle
 sql >> Base de données >  >> RDS >> Oracle

Vérifier la longueur de la colonne dans XMLTable

Vous avez des fautes de frappe et des noms incohérents, il est donc difficile de dire exactement ce que vous faites vraiment pour obtenir cette erreur, mais cela fonctionne si vous utilisez le string-length() fonction de votre exemple DB2, plutôt que length() (ou lenght() ):

"address" varchar2(15) path 'address/(if(string-length(.)<=15) then . else "Error!")' 

Avec des données modifiées pour déclencher le comportement d'erreur :

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