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

Przechowywanie przeszukiwalnych tablic w polu bazy danych SQL

Dzięki Oracle możesz przechowywać tablice w kolumnie za pomocą NESTED TABLE s (lub VARRAY s):

SQL Fiddle

Konfiguracja schematu Oracle 11g R2 :

CREATE TYPE String_Table IS TABLE OF VARCHAR2(100)
/

CREATE TABLE test (
  id     NUMBER(10,0),
  col1   VARCHAR2(10),
  array1 String_Table
) NESTED TABLE array1 STORE AS test__array1
/

INSERT INTO test ( id, col1, array1 )
  SELECT 1, 'Row1', String_Table( 'A', 'B', 'C' ) FROM DUAL UNION ALL
  SELECT 2, 'Row2', String_Table( 'C', 'D', 'E' ) FROM DUAL
/

Zapytanie 1 :Następnie możesz użyć operacji zbierania, takich jak:MEMBER OF znaleźć przedmioty w kolekcji; i MULTISET operatory takie jak SUBMULTISET OF aby znaleźć kolekcje zawierające wszystkie elementy z innej kolekcji.

SELECT *
FROM   test
WHERE  'B' MEMBER OF array1
OR     String_Table( 'E', 'C' ) SUBMULTISET OF array1

Wyniki :

| ID | COL1 | ARRAY1 |
|----|------|--------|
|  1 | Row1 |  A,B,C |
|  2 | Row2 |  C,D,E |

Jeśli używasz Javy, możesz przekazać tablice Javy jako parametry wiązania PreparedStatement lub CallableStatement . Oto kilka przykładów:tutaj i tutaj .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd instrukcji MERGE Oracle (ORA-30926)

  2. Błąd bazy danych Oracle w symfony2 (doktryna). Czy parametr parameters.yml jest prawidłowo skonfigurowany?

  3. Informacje o elemencie formatu RM w Oracle

  4. Jak uzyskać listę natywnych funkcji Oracle, takich jak (NVL, ABS itp.)

  5. org.hibernate.tool.schema.spi.CommandAcceptanceException:nie można wykonać polecenia