Oracle
 sql >> база данни >  >> RDS >> Oracle

Съхраняване на масиви с възможност за търсене в поле на SQL база данни

С Oracle можете да съхранявате масиви в колона с помощта на NESTED TABLE s (или VARRAY s):

SQL Fiddle

Настройка на схема на 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' ) ОТ DUAL/ 

Заявка 1 :След това можете да използвате операции за събиране като:MEMBER OF за намиране на предмети в колекция; и MULTISET оператори като SUBMULTISET OF за намиране на колекции, съдържащи всички елементи от друга колекция.

SELECT *FROM testWHERE 'B' MEMBER OF array1OR String_Table( 'E', 'C' ) SUBMULTISET OF array1 

Резултати :

<предварителен код>| ID | COL1 | МАСИВ1 ||----|------|--------|| 1 | Ред1 | A,B,C || 2 | Ред2 | C,D,E |

Ако използвате Java, тогава можете да предавате Java масиви като параметри за свързване на PreparedStatement или CallableStatement . Някои примери за това са тук и тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Деактивирайте автоматичното обновяване на Hibernate при флъш на синоними само за четене

  2. Пример за Oracle FOR LOOP REVERSE

  3. ORACLE SQL LISTAGG не връща очакван резултат

  4. множествен случай SQL заявка извлича един ред като множество колони

  5. Hibernate и Oracle Sequence