sql >> Databasteknik >  >> RDS >> Oracle

Kontrollera längden på kolumnen i XMLTable

Du har stavfel och inkonsekvent namngivning så det är svårt att säga exakt vad du verkligen gör för att få det felet, men det fungerar om du använder string-length() funktion från ditt DB2-exempel, snarare än length() (eller lenght() ):

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

Med modifierad data för att utlösa felbeteendet:

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            



  1. T-SQL delad sträng baserad på avgränsare

  2. Vad är rotfelet bakom Det gick inte att upprätta en databasanslutning. Kontrollera anslutningssträng, användarnamn och lösenord.

  3. postgres jsonb_set uppdatering av flera nycklar

  4. Hur man fixar "EXECUTE-satsen misslyckades eftersom dess WITH RESULT SETS-sats specificerade 2 kolumner för resultatuppsättningen..." Meddelande 11537 i SQL Server