Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

por que um array associativo indexado por VARCHAR2 não armazena mais de 9 elementos


Você está vendo isso porque o índice é uma string; o 15º elemento que você adiciona tem o índice '15', não o número 15; e com comparação de string '9' é maior que '15'. Então, last está mostrando a string mais alta valor, que ainda é '9'. Como @Koen diz, isso é o comportamento documentado :

onde 'mais alto' e 'mais baixo' são baseados em comparação de string .

Isso não tem nada a ver com quantos muitos elementos que existem (que é claramente 15); é apenas o comportamento do valor do índice que é afetado.

Se você tiver mais elementos, verá o last o valor muda quando você passa de 89, pois '90' é um valor maior que '9' e '91' é maior que '90'; mas quando você passa de 99, fica lá até chegar a 900. E assim por diante.

db<>fiddle