sql >> Databasteknik >  >> RDS >> Oracle

varför en associativ array indexerad av VARCHAR2 inte lagrar mer än 9 element

Du ser det för indexet är en sträng; det 15:e elementet du lägger till har index '15', inte siffran 15; och med strängjämförelse är '9' högre än '15'. Så, last visar den högsta strängen värde, som fortfarande är '9'. Som @Koen säger är detta det dokumenterade beteendet :

där 'högst' och 'lägst' är baserade på strängjämförelse .

Det har ingenting att göra med hur många element som finns (vilket klart är 15); det är bara beteendet hos indexvärdet som påverkas.

Om du har fler element kommer du att se den last värde ändras när du passerar 89, eftersom '90' är ett högre värde än '9' och '91' är högre än '90'; men när du passerar 99 sitter det kvar tills du når 900. Och så vidare.

db<>fiol



  1. Mysql uppdaterar en rad med ett annat radvärde i samma tabell

  2. Hur man väljer intervall i ett rekordintervall i Oracle

  3. Hur väljer man två kolumner som en?

  4. Hur man kör *.sql mysql-filen i min c#-applikation