From Release 7.50, the FROM clause
of a SELECT statement can also
be specified in front of the SELECT
clause. In this case, the SELECT clause must be introduced using the
new addition FIELDS. This arrangement supports tools such as Code Completion in ABAP Editor.
From Release 7.50, the addition UNION
creates the union of the results sets of two SELECT statements.
The coalesce function can now have 255 arguments instead
of just two and returns the value of the first argument that does not have the null value. Columns with the predefined dictionary type SSTRING can now be used as arguments.
ON Conditions Expanded
The following is possible from Release 7.50:
SQL expressions can
be used on the left side of the ON condition of any join expression.
The expression IS [NOT] NULL can be used in an ON condition of an outer join.
The full ON condition or subconditions of
joins can be specified dynamically as (cond_syntax). This is not possible if the full FROM clause is specified dynamically as (cond_syntax).
Columns Specified After BETWEEN
From Release 7.50, numeric columns can be specified on the right side in an interval condition using
BETWEEN, providing the name of the database table or view is prefixed using ~.
Subquery as data source of INSERT
In the Open SQL write statement INSERT, a parenthesized
subquery can now be specified as a data source
after FROM. The rows of the results set of the subquery are inserted into
the target table directly on the database. No data transport is required between the database and the application server.
Access to CDS entities
From Release 7.50, the restriction no longer applies that a
CDS entity can only be used
together with database tables and classic views in a SELECT statement if addressed using its
CDS database view. From Release 7.50, CDS views can be addressed using the name of their
CDS entity, even if associated with database tables or classic views using
subqueries. This makes accesses performed on a CDS using the CDS database view
If an input parameter of a CDS
entity is annotated with the new annotation
@Environment.systemField, Open SQL can pass the system value that matches the value of the
annotation implicitly. The annotation value
#CLIENT even prevents an actual parameter from being passed to input parameters explicitly that are annotated in this way for client IDs.
Path Expressions for Associations of CDS Views
From Release 7.50, path expressions can be specified
in SELECT statements that access CDS views with associations published for outside use as follows.
Path expressions closed with an element can be specified as columns.
When the new global
temporary tables in ABAP Dictionary are accessed using Open SQL, all temporary data stored here is guaranteed to be deleted before the next implicit
database commit, If not, a runtime error occurs.
Strict Mode in the Syntax Check
If one the new features listed above (with the exception of dynamic join conditions) is used in an Open SQL statement, the syntax check is performed in a
strict mode, which handles the statement more strictly than the regular syntax check.
CDS Views with Input Parameters
In Release 7.50 and higher, the input parameters
of CDS views are supported by all database platforms and can be used in Open SQL. It is no longer necessary to query property VIEWS_WITH_PARAMETERS using method USE_FEATURES of class
CL_ABAP_DBFEATURES. Querying this property results in a warning check from the syntax check.
System Classes Expanded
The class CL_ABAP_DBFEATURES can now be used to
check all features of databases that can be integrated in ABAP programming but which cannot be used in all database systems.
The new system class CL_DBI_UTILITIES contains utility methods for the database interface. The documented method IS_LOGGING_ON can be used to verify whether
logging is currently switched on for a database table.
Access to Replacement Objects
From Release 7.50, it is possible to define a CDS view as a
replacement object in ABAP Dictionary (transaction SE11) for a database table or a database view.
If a replacement object is defined for a database table or database view specified as a
data source of a
SELECT statement, the SELECT statement accesses the CDS view and not the database table or the database view.
This change was implemented using an internal tool a kernel patch after Release 7.40, SP10.