Das Natural-View-Konzept

Einige Natural-SQL-Statements erlauben auch die Verwendung von Natural-Views.

Ein Natural-View kann anstelle einer Parameterliste angegeben werden, wobei jedes Feld des Views (außer Gruppen, redefinierten Feldern sowie Feldern mit vorangestelltem Präfix L@ oder N@) einem Parameter (host-variable) entspricht.

Felder, deren Namen mit L@ bzw. N@ anfangen, können nur zusammen mit entsprechenden Feldern gleichen Namens verwendet werden. Dabei werden:

  • L@-Felder umgesetzt in LINDICATOR-Felder,

  • N@-Felder umgesetzt in INDICATOR-Felder.

Ein L@-Feld sollte im View jeweils unmittelbar vor dem Feld, auf das es sich bezieht, definiert werden.

Beispiel:

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

Das obige Beispiel entspricht dem Folgenden:

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