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

Sự khác biệt giữa mảng lồng nhau và mảng kết hợp là gì?

Đây là một sự khác biệt khác mà không thường được biết đến. Bạn có thể so sánh hai bảng lồng nhau bằng = hoặc <> nhưng mảng kết hợp thì bạn không thể.

DECLARE

    TYPE associative_array IS TABLE OF INTEGER INDEX BY PLS_INTEGER;
    a_var_associative_array associative_array;
    b_var_associative_array associative_array;

    TYPE nested_table IS TABLE OF INTEGER;
    a_var_nested_table nested_table := nested_table(1, 2, 3, 4, 5);
    b_var_nested_table nested_table := nested_table(5, 4, 3, 2, 1);

BEGIN

    IF a_var_nested_table = b_var_nested_table THEN
        -- Note, the different order of values!
        DBMS_OUTPUT.PUT_LINE ( 'TRUE' );
    ELSE
        DBMS_OUTPUT.PUT_LINE ( 'FALSE' );
    END IF;

    -- IF a_var_associative_array = b_var_associative_array THEN -> gives you an error! 

END;

Khi bạn làm việc với các bảng lồng nhau, bạn cũng có thể sử dụng Multiset Các nhà khai thác , Điều kiện Multiset SET không có sẵn cho các mảng liên kết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục PL / SQL - quá nhiều giá trị

  2. Xử lý dữ liệu hạt giống trong bản vá trực tuyến R12.2

  3. Chèn dữ liệu vào cơ sở dữ liệu oracle bằng php

  4. Tránh ORA-00955:tên đã được sử dụng bởi một đối tượng hiện có

  5. tại sao 'tạo bảng' trong tập lệnh sql lại thực thi 3 lần khi chỉ sử dụng 1 câu lệnh tạo?