Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Überprüfen Sie die Länge der Spalte in XMLTable

Sie haben Tippfehler und inkonsistente Benennungen, sodass es schwierig ist, genau zu sagen, was Sie wirklich tun, um diesen Fehler zu erhalten, aber es funktioniert, wenn Sie string-length() verwenden Funktion aus Ihrem DB2-Beispiel anstelle von length() (oder lenght() ):

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

Mit geänderten Daten zum Auslösen des Fehlerverhaltens:

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