Използвайте MULTISET UNION [ALL|DISTINCT]
оператор:
Настройка на схема на Oracle 11g R2 :
CREATE OR REPLACE TYPE businessTableForCategories AS TABLE OF VARCHAR(128);/CREATE TABLE Category (име VARCHAR(128) PRIMARY KEY,businesses businessTableForCategories) ВГЛАДЕНА ТАБЛИЦА businesses STORE AS categoryBusinessTable/INSERT INTO Category VALUES ( 'Restaurant' , businessTableForCategories('xzqpehc234ajdpa8'))/UPDATE CategorySET businesses =businesses MULTISET UNION ALL businessTableForCategories('other_value')WHERE name ='Restaurant'/
Заявка 1 :
ИЗБЕРЕТЕ *ОТ категория
<предварителен код>| ИМЕ | БИЗНЕС ||------------|------------------------------|| Ресторант | xzqpehc234ajdpa8,друга_стойност | Заявка 2 :
Или използвайте свързваща променлива, за да включите колекцията в заявката:
ДЕКЛАРИРАНЕ на бизнеси businessTableForCategories :=businessTableForCategories();BEGIN businesses.EXTEND( 10000); FOR i IN 1 .. 10000 LOOP businesses(i) :=DBMS_RANDOM.STRING( 'x', 128); КРАЙНА ПРИМКА; INSERT INTO Category VALUES („много данни“, бизнеси);END;
Заявка 3 :
ИЗБЕРЕТЕ име, CARDINALITY( businesses )FROM Category
<предварителен код>| ИМЕ | КАРДИНАЛНОСТ (БИЗНЕС) ||--------------|-------------------------|| много данни | 10 000 || Ресторант | 2 |