2011-07-20 2 views
5

Можно ли присоединиться к функции таблицы с таблицей Oracle?Присоединиться к значению функции оракула

SELECT 
    * 
FROM 
    SOME_TABLE a 
INNER JOIN 
    TABLE(GET_TABLE_LIST()) b ON = a.COL_A = b.COL_A 
+0

Каковы 'GET_TRFRMENGMACHIENINFOT' и' se' ?. – Quassnoi

+0

Извините, плохие вырезать/вставить ... они являются типами, используемыми в функции GET_TRFM .... Просто показ о выходе будет из функции, связанной с таблицей. – tafaju

ответ

11

Вы можете, да. Так как я не имею get_TrfrmEngMachineInfoT функцию, я создам свою собственную коллекцию и присоединиться к ней в EMP таблицы в схеме SCOTT

SQL> create or replace type typ_person 
    2  as object (
    3  person_id number, 
    4  person_name varchar2(30) 
    5  ); 
    6/

Type created. 

SQL> create or replace type tbl_person 
    2 as table of typ_person; 
    3/

Type created. 

SQL> ed 
Wrote file afiedt.buf 

    1 create or replace function get_person_list 
    2 return tbl_person 
    3 is 
    4 l_people tbl_person; 
    5 begin 
    6 select typ_person(empno, ename) 
    7  bulk collect into l_people 
    8  from emp; 
    9 return l_people; 
10* end; 
SQL>/

Function created. 

SQL> select p.* 
    2 from emp e 
    3   join table(get_person_list()) p on (p.person_id = e.empno); 

PERSON_ID PERSON_NAME 
---------- ------------------------------ 
     7623 PAV 
     7369 smith 
     7499 ALLEN 
     7521 WARD 
     7566 JONES 
     7654 MARTIN 
     7698 BLAKE 
     7782 CLARK 
     7788 SCOTT 
     7839 KING 
     7844 TURNER 
     7876 ADAMS 
     7900 SM0 
     7902 FORD 
     7934 MILLER 
     1234 FOO 

16 rows selected. 
+0

Justin у вас есть решение для каждой проблемы +1, не может сделать больше этого;) –

0

Может быть, это может работать для вас ...

SELECT table_name.*, myFunc(table_name.OBJID) as new_field_name from table_name 

Это выберет все из таблицы table_name и добавит результат функции в новый набор.

myFunc использует table_name.OBJID поле, чтобы соответствовать несколько записей и делать все, что ...

Смежные вопросы