sql >> Database teknologi >  >> RDS >> Oracle

hvorfor et associativt array indekseret af VARCHAR2 ikke gemmer mere end 9 elementer

Du ser det fordi indekset er en streng; det 15. element, du tilføjer, har indeks '15', ikke tallet 15; og med strengsammenligning er '9' højere end '15'. Så last viser den højeste streng værdi, som stadig er '9'. Som @Koen siger, er dette den dokumenterede adfærd :

hvor 'højeste' og 'laveste' er baseret på strengsammenligning .

Det har intet at gøre med hvor mange elementer der er (hvilket klart er 15); det er kun indeksværdiens opførsel, der påvirkes.

Hvis du har flere elementer, vil du se den last værdi ændres, når du passerer 89, da '90' er en højere værdi end '9', og '91' er højere end '90'; men når du passerer 99, hænger det der, indtil du når 900. Og så videre.

db<>violin



  1. Søg i Microsoft SQL Server-databasen efter lagrede data

  2. Formular i PDO for at opdatere data

  3. Kopier nogle få af kolonnerne i en csv-fil til en tabel

  4. Database historik