Ansicht
Dokumentation

ABENNEWS-740_SP08-ABAP_SQL - NEWS-740 SP08-ABAP SQL

ABENNEWS-740_SP08-ABAP_SQL - NEWS-740 SP08-ABAP SQL

RFUMSV00 - Advance Return for Tax on Sales/Purchases   Fill RESBD Structure from EBP Component Structure  
This documentation is copyright by SAP AG.
SAP E-Book

in Release 7.40, SP08





New Column dbtab~* Specified After SELECT

In the definition of the result set in the SELECT list of a SELECT statement, data_source~* can be specified as an element of the SELECT list from Release 7.40, SP08 to include all columns of different database tables or views used after FROM in the result set. If specified, data_source~* can be combined with individual specified columns col_spec (with the exception of aggregate expressions).

When data_source~* is specified in the result set, the syntax check is performed in a strict mode, which handles the statement more strictly than the regular syntax check.



Inline Declarations for the Target Area of SELECT

After the addition INTO of a SELECT statement, inline declarations can be made from Release 7.40, SP08 using the declaration operator DATA(...) with the prefixed escape character @. Inline declarations can be made for individual parenthesized data objects (@DATA(elem1),@DATA(elem2),...), for individual work areas INTO @DATA(wa), and for internal tables INTO TABLE @DATA(itab). Either an elementary data object, a structure, or an internal table is declared depending on the result set defined in the SELECT list and the database tables used after FROM.

When inline declarations are used, the syntax check is performed in a strict mode, which handles the statement more strictly than the regular syntax check.



SQL Expressions

The SQL expressions introduced in Release 7.40, SP05 were revised in the following ways:

  • SQL expressions can be specified after GROUP BY.
  • SQL expressions can be specified together with aggregate expressions in the SELECT list.
  • SQL expressions can be specified as arguments of aggregate functions (except avg) in the SELECT list and the HAVING clause.

If one of the new features is used, the syntax check is performed in a strict mode, which handles the statement more strictly than the regular syntax check.



Reads on CDS Views with Parameters

From Release 7.40, SP08, CDS views can be defined with input parameters that are assigned actual parameters when used. To enable this, the option of a parenthesized comma-separated list for parameter passing was added to the data source specified in the statement SELECT:

( pname1 = act1, pname1 = act2, ...)

Since not all database systems support views with parameters, the new class CL_ABAP_DBFEATURES with the method USE_FEATURES is available, which detects whether this is possible for the current database system. Furthermore, accessing a view with parameters triggers a warning from the syntax check; this warning can be hidden by a pragma.



Restrictions Removed

The following previous restrictions were removed:

  • From Release 7.40, SP08, a negative sign - can be placed in front of an operand of an arithmetic expression that does not follow an arithmetic operator directly.

  • From Release 7.40, SP08, an operand operand1, operand2, ... in a simple case distinction can now also be an SQL expression.

  • From Release 7.40, SP08, the operators LIKE and IN (...) can be used in ON conditions.

  • From Release 7.40, SP08, individual comparisons can be joined using OR and negated using NOT.

  • From Release 7.40, SP08, outer joins no longer need to contain at least one comparison between columns on the left and right side.

  • Subqueries can now also be specified dynamically.

When one of the rule changes is exploited, the syntax check is performed in a strict mode, which handles the statement more strictly than the regular syntax check.



Position of the INTO Clause

From Release 7.40, SP08, the INTO clause can and should be specified as the final clause of a SELECT statement. In this case, the additions UP TO, OFFSET and abap_options of the SELECT statement must be specified after INTO.

If the INTO clause is specified as the final clause, the syntax check is performed in a strict mode. This handles the statement more strictly than the regular syntax check.



Stricter Checks for Syntax Rules

From Release 7.40, SP08, the following syntax constructs that have always contained errors now produce syntax errors or runtime errors.

  • Correction for the HAVING Condition
Any columns that are specified in a HAVING clause outside of an aggregate expression must also be specified after GROUP BY. Before Release 7.40, SP08, this was not recorded by the static syntax check, but did raise a catchable exception. From Release 7.40, SP08, this produces a syntax check warning and raises an uncatchable exception outside of the strict mode of the syntax check.

Example

From Release 7.40, SP08, a syntax warning and uncatchable exception for:

DATA itab TYPE TABLE OF scarr.
SELECT *
       FROM scarr
       INTO TABLE itab
       HAVING carrid = 'LH'.




Strict Mode in the Syntax Check

If one the new features listed here is used in an statement, the syntax check is performed in a strict mode, which handles the statement more strictly than the regular syntax check.



Comparable Types

A table of comparable types was constructed for comparisons performed on the database. The results of comparisons made between non-comparable types are determined by the database system and produce a syntax error (in the strict mode of the syntax check) or a syntax warning.






ABAP Short Reference   ABAP Short Reference  
This documentation is copyright by SAP AG.

Length: 10543 Date: 20240328 Time: 161638     sap01-206 ( 138 ms )