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

Jaka jest różnica między tablicą zagnieżdżoną a tablicą asocjacyjną?

Oto kolejna różnica, która nie jest tak powszechnie znana. Możesz porównać dwie zagnieżdżone tabele za pomocą = lub <> ale tablica asocjacyjna nie jest możliwa.

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;

Podczas pracy z tabelami zagnieżdżonymi możesz również użyć Multiset Operatorzy , Warunki wielozestawowe i SET które nie są dostępne dla tablic asocjacyjnych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zastąp lub usuń wiele wierszy tekstu w procedurze składowanej Oracle

  2. oracle diff:jak porównać dwie tabele?

  3. Oracle — ciąg kombinatoryczna permutacja

  4. Zapytanie o różnicę wydajności pl/sql dla wstawiania i zwykłego wstawiania SQL

  5. Wyświetl rekordy z dwóch tabel obok siebie pasujące tylko do niektórych pól