sql >> Base de Datos >  >> RDS >> Oracle

por qué una matriz asociativa indexada por VARCHAR2 no almacena más de 9 elementos

Estás viendo eso porque el índice es una cadena; el decimoquinto elemento que agrega tiene el índice '15', no el número 15; y con la comparación de cadenas '9' es mayor que '15'. Entonces, last está mostrando la cadena más alta valor, que sigue siendo '9'. Como dice @Koen, esto es el comportamiento documentado :

donde 'más alto' y 'más bajo' se basan en comparación de cadenas .

Eso no tiene nada que ver con la cantidad de elementos que hay (que claramente son 15); solo se ve afectado el comportamiento del valor del índice.

Si tiene más elementos, verá el last el valor cambia cuando pasa 89, ya que '90' es un valor más alto que '9' y '91' es más alto que '90'; pero cuando pasas 99 se queda allí hasta llegar a 900. Y así sucesivamente.

db<>fiddle