Pehaps you are referring to a cross join? Well thats really easy, just don't provide any columns to join and Oracle will join every row in the left table with every row in the right table also known as a Cartesian join.
Note that I have not specified any join criteria.
And here is an example in SQL*PLUS:
Sorry, my sincere apologies I should have read your full question. CROSS APPLY is used with TVF's (table valued functions) and I assume your code is the same.
In Oracle, the equivalent of a TVF is a PIPELINED function. The use is almost identical to SQL servers implementation.
The following is a horribly simple example of it.
dayneo@RMSD> CREATE OR REPLACE TYPE date_table_type AS TABLE OF DATE
dayneo@RMSD> create or replace function mypipefnc(p_id in number) return date_table_type pipelined as
4 for l_row in (select created
5 from all_objects
6 where object_id = p_id) loop
8 pipe row(l_row.created);
10 end loop;
12 end mypipefnc;
dayneo@RMSD> select o.object_name, o.object_type, f.column_value
2 from all_objects o,
3 TABLE(mypipefnc(o.object_id)) f
4 where o.owner not in ('PUBLIC')
5 and rownum <= 5
OBJECT_NAME OBJECT_TYPE COLUMN_VA
------------------------------ ------------------- ---------
DUAL TABLE 30-JUN-05
SYSTEM_PRIVILEGE_MAP TABLE 30-JUN-05
TABLE_PRIVILEGE_MAP TABLE 30-JUN-05
STMT_AUDIT_OPTION_MAP TABLE 30-JUN-05
RE$NV_LIST TYPE 30-JUN-05
Obviously you can have more sophisticated return types defined, I just made it a single date column for simplicity, but you can make it any type you want. Also note that since I just used a simple table of date, the column name used in SQL will default to COLUMN_VALUE. When you specify more complex return types, the column names will be as specified in the return type.