Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

tại sao một mảng liên kết được lập chỉ mục bởi VARCHAR2 không lưu trữ nhiều hơn 9 phần tử

Bạn đang thấy điều đó bởi vì chỉ mục là một chuỗi; phần tử thứ 15 bạn thêm vào có chỉ số '15', không phải số 15; và với so sánh chuỗi "9" cao hơn "15". Vì vậy, last đang hiển thị chuỗi cao nhất giá trị vẫn là '9'. Như @Koen sais, đây là hành vi được ghi lại :

trong đó 'cao nhất' và 'thấp nhất' dựa trên so sánh chuỗi .

Điều đó không liên quan đến số nhiều các phần tử có (rõ ràng là 15); nó chỉ là hành vi của giá trị chỉ mục bị ảnh hưởng.

Nếu bạn có nhiều phần tử hơn thì bạn sẽ thấy last thay đổi giá trị khi bạn vượt qua 89, vì '90' là giá trị cao hơn '9' và '91' cao hơn '90'; nhưng khi bạn vượt qua 99, nó vẫn ở đó cho đến khi bạn đạt đến 900. Và cứ tiếp tục như vậy.

db <> fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố kết nối Hikaricp Oracle

  2. có cách nào để ghi lại tất cả các câu lệnh sql bị lỗi trong oracle 10g không

  3. ORA-01861:chữ không khớp với chuỗi định dạng

  4. Thiếu tạo tác com.oracle:ojdbc6:jar:11.2.0.3

  5. LỖI Oracle:ORA-00900:câu lệnh SQL không hợp lệ