
In particular, the extended flexibility of the table operator allows code written to run other vendors' stored procedure languages to be easily migrated to PL/SQL.Ģ.1.6.10 SQL CROSS APPLY, OUTER APPLY and LATERAL The removal of these restrictions increases the power of expression and the usefulness of PL/SQL. (In prior releases, the collection's data type had to be declared at the schema level.) This also allows the data type to be a PL/SQL associative array. The table operator can now be used in a PL/SQL program on a collection whose data type is declared in PL/SQL. For example, a PL/SQL subprogram with a formal parameter whose data type is BOOLEAN can now be invoked dynamically using an anonymous block. This restriction is removed in Oracle Database 12 c Release 1 (12.1). This restriction applied even when the called SQL was a PL/SQL anonymous block.

Through Oracle Database 11 g Release 2 (11.2), when PL/SQL invoked SQL, only values with data types supported by SQL could be bound. It relieves the application developers from the burden of formulating their queries in terms of views or LEFT OUTER JOIN syntax.Ģ.1.4.12 PL/SQL-Specific Data Types Allowed Across the PL/SQL-to-SQL Interface These views are merged in a heuristic manner without having to go through cost-based query transformation. Merging of such views allows more join reordering and, therefore, more optimal execution plans. Such views can originate from the user query or they may be generated during conversion from LEFT OUTER JOIN syntax. Merging of multiple table views on the left hand side of an outer join. This expansion provides the following benefits:

In Oracle Database 12 c, the native syntax for a LEFT OUTER JOIN has been expanded to allow multiple tables on the left hand side. The only way to execute such a query was to translate it into ANSI syntax. Prior to Oracle Database 12 c, having multiple tables on the left hand side of an outer join was illegal and resulted in an ORA-01417 error. Beginning with Oracle Database 12 c, a single table can be the null-generated table for multiple tables. In previous releases of Oracle Database, in a query that performed outer joins of more than two pairs of tables, a single table could be the null-generated table for only one other table. 2.1.4.3 Enhanced Oracle Native LEFT OUTER JOIN Syntax
