Natural View Concept

Some Natural SQL statements also support the use of Natural views.

A Natural view can be specified instead of a parameter list, where each field of the view - except group fields, redefining fields and fields prefixed with L@ or N@- corresponds to one parameter (host variable).

Fields with names prefixed with L@ or N@ can only exist with corresponding master fields; that is, fields of the same name, where:

  • L@ fields are converted into LINDICATOR fields,

  • N@ fields are converted into INDICATOR fields.

L@ fields should have been specified at view definition, immediately before the master fields to which they apply.

DEFINE DATA LOCAL 
01 PERS VIEW OF SQL-PERSONNEL 
  02 PERSID     (I4) 
  02 NAME       (A20) 
  02 N@NAME    (I2)                     /* null indicator of NAME 
  02 L@ADDRESS (I2)                     /* length indicator of ADDRESS 
  02 ADDRESS    (A50/1:6) 
  02 N@ADDRESS (I2)                     /* null indicator of ADDRESS 
01 #PERSID      (I4) 
END-DEFINE 
   ... 
SELECT * 
  INTO VIEW PERS 
  FROM SQL-PERSONNEL 
  WHERE PERSID = #PERSID 
   ... 
END-SELECT

The above example is equivalent to the following one:

... 
SELECT * 
  INTO PERSID, 
       NAME INDICATOR N@NAME, 
       ADDRESS(*)INDICATOR N@ADDRESS LINDICATOR L@ADDRESS 
  FROM SQL-PERSONNEL 
  WHERE PERSID = #PERSID 
... 
END-SELECT