Oracle
 sql >> Baza danych >  >> RDS >> Oracle

dlaczego tablica asocjacyjna indeksowana przez VARCHAR2 nie przechowuje więcej niż 9 elementów

Widzisz to ponieważ indeks jest ciągiem; dodany 15 element ma indeks '15', a nie numer 15; a przy porównaniu ciągów '9' jest wyższa niż '15'. A więc last pokazuje najwyższy ciąg wartość, która nadal wynosi „9”. Jak mówi @Koen, jest to udokumentowane zachowanie :

gdzie „najwyższy” i „najniższy” są oparte na porównanie ciągów .

Nie ma to nic wspólnego z liczbą wielu elementy są (co jest wyraźnie 15); wpływa to tylko na zachowanie wartości indeksu.

Jeśli masz więcej elementów, zobaczysz last zmiana wartości po zdaniu 89, ponieważ '90' jest wyższą wartością niż '9', a '91' jest wyższa niż '90'; ale kiedy przekroczysz 99, trzyma się tam, aż osiągniesz 900. I tak dalej.

db<>skrzypce



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle.DataAccess.Client.OracleException ORA-03135:utrata połączenia

  2. Procedura składowana w Oracle podająca błąd PLS-00428

  3. sql - oracle - wybór pierwszego i ostatniego rekordu dla określonej grupy/sku

  4. Ustaw limit czasu połączenia z bazą danych w Pythonie

  5. Procedura lub zadanie Oracle do automatycznego kopiowania danych z jednego schematu do drugiego na podstawie osi czasu