sql >> Databáze >  >> RDS >> Oracle

Ukládání prohledávatelných polí do pole databáze SQL

S Oracle můžete ukládat pole ve sloupci pomocí NESTED TABLE s (nebo VARRAY s):

SQL Fiddle

Nastavení schématu 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
/

Dotaz 1 :Potom můžete použít operace shromažďování, jako je:MEMBER OF najít položky ve sbírce; a MULTISET operátory jako SUBMULTISET OF najít sbírky obsahující všechny položky jiné sbírky.

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

Výsledky :

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

Pokud používáte Java, můžete předat pole Java jako parametry vazby PreparedStatement nebo CallableStatement . Některé příklady jsou zde a zde .




  1. PHP/MySQL:Jak vytvořit sekci komentářů na vašem webu

  2. C#/SQL:zálohování a obnova zkopírováním a nahrazením databázových souborů?

  3. SQLite JSON_SET()

  4. Co je rychlejší:MySQL/PHP nebo poskytování přímo ze statických souborů?