0
我創建了一個VARRAY類型:如何選擇一個查詢結果的陣列?
CREATE TYPE my_array AS varray(1024) OF VARCHAR2(512);
我知道我可以從值列表中創建的my_array
實例使用my_array()
:
SELECT my_array('foo', 'bar');
但是,有沒有方法來創建一個實例從查詢的結果?我想是這樣的:
SELECT my_array(SELECT table_name FROM all_tables WHERE owner = 'SCOTT')
FROM dual;
或者,做不到這一點,那返回my_array
合計:
SELECT my_array_agg(table_name) FROM all_tables WHERE owner = 'SCOTT';
是該做的,能夠在Oracle中?
幸運的是,我用[的DBI(https://metacpan.org/module/DBI)和甲骨文驅動程序知道(https://metacpan.org/module/DBD::Oracle# OBJECT-COLLECTION-DATA-TYPES)將集合轉換爲數組。讓我不知道,但我可以定義一個列存儲的'COLLECT()'結果呢?或者它必須是一個VARRAY? – theory 2013-05-01 16:05:12
你嘗試過鑄造....從'選擇投(收集(COL)爲my_array)...'? – haki 2013-05-01 17:19:30
是的,這工作正常。我的意思是不必創建一個類型,而只是通過返回的對象'收集()'作爲列類型。這看起來不可行。 – theory 2013-05-02 16:00:21