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

Làm thế nào để chèn một giá trị vào một bảng lồng nhau mà không làm mất dữ liệu trong bảng đó?

Sử dụng MULTISET UNION [ALL|DISTINCT] nhà điều hành:

SQL Fiddle

Thiết lập lược đồ Oracle 11g R2 :

CREATE OR REPLACE TYPE businessTableForCategories AS TABLE OF VARCHAR(128);
/

CREATE TABLE Category (
name                    VARCHAR(128) PRIMARY KEY,
businesses              businessTableForCategories
) NESTED TABLE businesses STORE AS categoryBusinessTable
/

INSERT INTO Category VALUES (
  'Restaurant',
  businessTableForCategories('xzqpehc234ajdpa8')
)
/

UPDATE Category
SET businesses = businesses
                 MULTISET UNION ALL 
                 businessTableForCategories('other_value')
WHERE name = 'Restaurant'
/

Truy vấn 1 :

SELECT *
FROM   category

Kết quả :

|       NAME |                   BUSINESSES |
|------------|------------------------------|
| Restaurant | xzqpehc234ajdpa8,other_value |

Truy vấn 2 :

Hoặc sử dụng biến liên kết để đưa tập hợp vào truy vấn:

DECLARE
  businesses businessTableForCategories := businessTableForCategories();
BEGIN
  businesses.EXTEND( 10000 );
  FOR i IN 1 .. 10000 LOOP
    businesses(i) := DBMS_RANDOM.STRING( 'x', 128 );
  END LOOP;
  INSERT INTO Category VALUES ( 'lots of data', businesses );
END;

Truy vấn 3 :

SELECT name, CARDINALITY( businesses )
FROM   Category

Kết quả :

|         NAME | CARDINALITY(BUSINESSES) |
|--------------|-------------------------|
| lots of data |                   10000 |
|   Restaurant |                       2 |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thêm và xóa thẻ xml của dữ liệu hiện có bên trong cột xmltype trong oracle

  2. Làm cách nào để chuyển đổi XMLTYPE thành VARCHAR trong ORACLE?

  3. Oracle Blob dưới dạng img src trong trang PHP

  4. Oracle SELECT FROM kép hoạt động như thế nào với nhiều trường

  5. Kết quả không có thứ tự trong SQL