С Oracle можете да съхранявате масиви в колона с помощта на NESTED TABLE
s (или VARRAY
s):
Настройка на схема на 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
. Някои примери за това са тук и тук .