2012-04-02 130 views
2

我想创建一个虚拟表类似的语法甲骨文:从表中选择(1; 2)

SELECT 'sk: ' || #1 || ' ; pdf: ' || #2 
FROM TABLE('1, 2', '3, 4') 

并取得这样的事情

SELECT 'sk: ' || '1' || ' ; pdf: ' || '2' 
FROM DUAL 
UNION 
SELECT 'sk: ' || '3' || ' ; pdf: ' || '4' 
FROM DUAL 

我可以创建对象。

我在这里看到一些有用的东西:Oracle: split string to rows

但是,这是一个数组,现在我需要一个矩阵

回答

6

你可以这样做:

create type sk_pdf_type is object (sk number, pdf number); 

create type sk_pdf_tab_type is table of sk_pdf_type; 

select * from table 
    (sk_pdf_tab_type (sk_pdf_type (1, 2) 
        , sk_pdf_type (3, 4) 
        ) 
);