ABAP Keyword Documentation → ABAP − Release-Specific Changes → Changes in Release 3.0
Open SQL in Release 3.0
WHERE
condition at runtime when calling SELECT
SELECT
,
INSERT
, UPDATE
, MODIFY
and DELETE
DUPREC
errors from INSERT ... FROM TABLE itab
SELECT
with FOR ALL ENTRIES in itab
SELECT
with PACKAGE SIZE n
SELECT
INTO
list for SELECT
and FETCH
Other versions: 7.31 | 7.40 | 7.54
Modification 1
Partial or complete specification of the WHERE
condition at runtime when calling SELECT
The WHERE
condition can be stored partially or entirely
in an internal table. This means you can construct WHERE
conditions dynamically
at runtime. In contrast to a RANGES
table, an internal table stores a WHERE
condition in textual form. The internal
table can then be accessed using SELECT ... WHERE (itab)
or SELECT
... WHERE sql_cond AND (itab). itab
refers to the name of the internal
table and sql_cond
to the statically specified part of the WHERE
condition.
Examples and further information may be found in the documentation for the WHERE
clause.
Modification 2
Specification of the name of the database table or of the view at runtime when calling
SELECT
, INSERT
,
UPDATE
,
MODIFY
and DELETE
The name of a database table or a view can be supplied dynamically as the contents of a field.
Instead of specifying the table name directly in the source code, a field name in brackets is given. The contents of this field are interpreted as the table name.
Examples and further information may be found in the documentation for the FROM
clause.
Modification 3
Return of DUPREC
errors from INSERT
... FROM TABLE itab
In cases where one or several lines cannot be inserted because lines with the specified keys already
exist, a runtime error always occurred in the past. The addition ... ACCEPTING DUPLICATE
KEYS has the effect of setting the return code SY-SUBRC
to 4 rather than aborting the process. The remaining lines are then added after the command has been executed.
Further information may be found in the documentation of the command INSERT
.
Modification 4
Union of solution sets for SELECT
with FOR ALL ENTRIES in itab
A SELECT
command with ... FOR ALL ENTRIES IN itab
WHERE sql_cond forms the union of solution sets of all SELECT
commands
that result if the fields of the internal table itab
referenced in the
WHERE condition were to be replaced by the actual values of a table line. This variant is very useful if, for example, an internal table is filled with pre-specified
primary keys. All corresponding
database lines can be selected with a single SELECT
command. This technique
avoids the need for a loop containing a SELECT SINGLE ...
for each line of the internal table.
Examples and further information may be found in the documentation for the WHERE
clause.
Modification 5
Reading database lines by packets in SELECT
with PACKAGE SIZE n
SELECT ... INTO TABLE itab PACKAGE SIZE
n places the selected lines into the internal table in packets of n
lines rather than all at once. Each new packet overwrites the contents of itab
.
This is a good way of making sure that the internal table does not get too big. If PACKAGE
SIZE is used with SELECT ... APPENDING TABLE itab
, the previous contents of itab
are preserved and each new packet is added at the end of the table.
Examples and further information may be found in the documentation for the INTO
clause.
Modification 6
Explicit cursor processing
The commands OPEN CURSOR
, FETCH
and CLOSE CURSOR
enable nested processing of one or several database tables
without the need to keep redefining the datasets. By using the addition WITH HOLD
, you can open a cursor which is then preserved across
database commits.
Examples and further information may be found in the documentation for the ABAP commands
OPEN CURSOR
,
FETCH and CLOSE CURSOR
.
Modification 7
Select list with aggregate functions in SELECT
Apart from SELECT *
, SELECT COUNT( *
) and SELECT SINGLE *
, you can specify the aggregate functions
MIN, MAX
, SUM
, COUNT
and AVG
, and also fields of the database table in the select list. Specifying DISTINCT
causes duplicate lines to be removed automatically from the solution set.
Examples and further information may be found in the documentation for the SELECT
clause.
Modification 8
INTO
list for SELECT
and FETCH
If the SELECT
clause specifies a list, the INTO
clause can include a list of ABAP fields of equal length to be used as the target area.
Examples and further information may be found in the documentation for the INTO
clause.