Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lưu trữ Mảng có thể tìm kiếm trong trường cơ sở dữ liệu SQL

Với Oracle, bạn có thể lưu trữ các mảng trong một cột bằng cách sử dụng NESTED TABLE s (hoặc VARRAY s):

SQL Fiddle

Thiết lập lược đồ 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
/

Truy vấn 1 :Sau đó, bạn có thể sử dụng các thao tác thu thập như:MEMBER OF để tìm các mục trong một bộ sưu tập; và MULTISET các toán tử như SUBMULTISET OF để tìm các bộ sưu tập có chứa tất cả các mục của một bộ sưu tập khác.

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

Kết quả :

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

Nếu bạn đang sử dụng Java thì bạn có thể chuyển các mảng Java làm tham số liên kết của PreparedStatement hoặc CallableStatement . Một số ví dụ về điều này là tại đây tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tải bảng dữ liệu Excel vào cơ sở dữ liệu Oracle

  2. Làm thế nào để trả về một mảng từ Java sang PL / SQL?

  3. RU hay RUR?

  4. sự khác biệt ngày tháng

  5. Tôi có nên sử dụng UCP hoặc HikariCP của Oracle cho một ứng dụng hiện đại không?