例如,我必須從 Varray 檢索特定資料
CREATE OR REPLACE TYPE class_t IS VARRAY(9) OF VARCHAR(5);/
create table exprement(name VARCHAR2(20), seat class_t);
insert into exprement(name,seat) values('JPZ',class_t('AC1','EC'));
insert into exprement(name,seat) values('ABC',class_t('GEN','EC'));
insert into exprement(name,seat) values('DFG',class_t('AC1','EC'));
我想檢索我嘗試過的 VARRAY 包含 AC1 的名稱 select * from exprement where seat='AC1';
uj5u.com熱心網友回復:
您可以使用:
SELECT name
FROM experiment e
WHERE EXISTS (SELECT 1 FROM TABLE(e.seat) WHERE COLUMN_VALUE = 'AC1');
或者
SELECT name
FROM experiment e
CROSS APPLY TABLE (e.seat) s
WHERE s.COLUMN_VALUE = 'AC1';
順便seat說一句,如果您定義為嵌套表(而不是 a VARRAY),那么您可以使用MEMBER OF運算子:
SELECT *
FROM experiment
WHERE 'AC1' MEMBER OF seat;
但這不適用于VARRAYs 或關聯陣列。
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314336.html
下一篇:獲取繁忙時間重疊的可用日期間隔
