LISTSQL

Dieses Kommando ist bei Natural for DB2 verfügbar.

LISTSQL

object-name

[ALL]

<sa>

Das Kommando LISTSQL listet diejenigen Natural-Statements im Quellcode eines Natural-Objekts auf, die in Verbindung mit einem Datenbankzugriff stehen, sowie die entsprechenden SQL-Kommandos, in die sie übersetzt wurden. Damit ist es möglich, den generierten SQLCODE zu sichten, bevor das Natural-Programm, welches auf eine SQL-Tabelle zugreift, ausgeführt wird.

Syntax-Element Beschreibung

object-name
<sa>

Wenn Sie einen gültigen Objektnamen angeben, muss das anzuzeigende Objekt in der Library gespeichert sein, in die Sie zurzeit eingeloggt sind.

Wenn Sie keinen Objektnamen angeben oder wenn Sie <sa> (source area) angeben, bezieht sich LISTSQL auf das Objekt, das sich zurzeit im Natural-Quellcode-Bereich befindet.

In jedem Fall benötigt LISTSQL ein katalogisiertes oder ein mit dem STOW-Kommando kompiliertes und gespeichertes Objekt.

ALL Bei Angabe des Schlüsselworts ALL werden die generierten SQL-Statements des Objekts direkt nacheinander (ohne Blättern) angezeigt. Wenn Sie das Schlüsselwort weglassen, werden die im angegebenen Objekt enthaltenen generierten Statements jeweils einzeln auf einer Seite aufgeführt.

Das Schlüsselwort ALL können Sie sowohl im Online- als auch im Batch-Modus angeben. Das Ausgabeformat ist in beiden Fällen gleich. Die Funktionen Error (PF2), Explain (PF4) bzw. Parms (PF6) stehen nicht zur Verfügung.

Wenn Sie das Schlüsselwort ALL angeben, können Sie ein Fragezeichen (?) oder einen Stern (*) als Stellvertretersymbol benutze, zum Beispiel: LISTSQL PGM* ALL. Die Sonderzeichen > und < sind erlaubt, jedoch nur am Ende einer Zeichenkette; das bedeutet, dass z.B. die Angabe ABC<DEF ein ungültiger Ausdruck ist.

Beispiel-Bildschirm LISTSQL:

 14:50:23               ***** NATURAL TOOLS FOR SQL *****            2024-10-05
 Member DEM2SEL                   - LISTSQL -                  Library SYSDB243
 SQL Builder Version 4.30                                                      
 Natural statement  at line 0140                                 Stmt   1 / 1  
                                                                               
   SELECT *                                                                    
       INTO VIEW NAT-DEMO                                                      
       FROM NAT-DEMO                                                           
                                                                               
 Generated SQL statement   Mode : dynamic  DBRM :                Line   1 / 3  
                           NDZ  : static       Prof : DEM2PROF
                                Length  68    
   SELECT  NAME, ADDRESS, DATEOFBIRTH, SALARY                                  
   FROM    NAT.DEMO                                                            
   FOR FETCH ONLY                                                              


                                                                               
                                                                               
Command ===>                                        Queryno for EXPLAIN 1____  

                                                                               
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
            Error Exit  Expl        Parms                   Prev  Next  Canc

Wenn ein statisches Database Request Module (DBRM) generiert wurde, dann wird sein Name im Feld DBRM des Bildschirms LISTSQL angezeigt. Andernfalls bleibt dieses Feld leer.

Wenn eine statische NDZ-Generierung durchgeführt wurde, wird static im Feld NDZ angezeigt und der SQLJ-Profilname wird nach dem Literal Prof angezeigt.

Wenn keine statische NDZ-Generierung durchgeführt wurde, werden die Felder NDZ und Prof nicht angezeigt.

Die folgenden spezifischen PF-Funktionstasten stehen zur Verfügung:

PF-Taste (Bezeichnung): Funktion:
PF2 (Error) Diese Taste dient zur Ausführung des Kommandos SQLERR. Wenn bei der EXPLAIN-Funktion ein Fehler auftritt, können Sie diese Taste drücken, um Informationen zu DB2-Fehler zu erhalten.
PF4 (Expl) Diese Taste dient zur Ausführung des Kommandos EXPLAIN für das zurzeit aufgelistete SQL-Statement. Die Abfragenummer für das EXPLAIN-Kommando (im Feld Queryno for EXPLAIN) ist standardmäßig auf 1 gesetzt und kann überschrieben werden.
PF6 (Parms) Mit dieser Taste kann ein weiterer Bildschirm aufgerufen werden, auf dem alle Parameter aus dem SQLDA für das zurzeit aufgelistete SQL-Statement angezeigt werden; siehe Beispiel-Bildschirm weiter unten.
PF10 (Prev), PF11 (Next) Durch Drücken dieser Tasten können Sie innerhalb der aufgelisteten Ergebnisse zwischen den SQL-Statements hin- und herblättern.

Beispiel-Bildschirm mit Parametern:

 14:55:24               ***** NATURAL TOOLS FOR SQL *****            2024-10-05
 Member DEM2SEL                     LISTSQL                    Library SYSDB243
         NDZ  : static       Prof : DEM2PROF  Sequence : 00008 Sequence2 : 00000                                                                      
         Mode : dynamic   DBRM :           Contoken :                          
                    (3rd/pre)                                                  
         static parms : (1st)                                                  
                        (2nd)                                                  
         SQLDA                                                                 
                                   DBID : 250  FNR :   1  CMD : S1 0140 08     
     Nr  Type     Length     CCSID                                             
      1. CHAR             20       8001 0000 0014 01C4 0000 0000 0800 0000     
      2. CHAR            100       8002 0000 0064 01C4 0000 0000 0800 0000     
      3. CHAR             10       8003 0000 000A 01C4 0000 0000 0800 0000     
      4. DECIMAL         6.2       8004 4000 0602 01E5 0000 0000 0800 0000     
                                                                               







Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                  Exit                                                  Canc

Im statischen Modus werden ausserdem noch statische Informationen angezeigt (statischer DBRM-Name, DB2-Konsistenzmerkmal (Contoken) und einige intern verwendete statische Parameter).

Wenn eine statische NDZ-Generierung durchgeführt wurde, wird static im Feld NDZ angezeigt. In den Feldern Sequence und Sequence2 wird die SQLJ-Sequenznummer des Statements und die Sequenznummer des sekundären Statements angezeigt, wenn die Option File Server für die statische Generierung angegeben wurde.

Wenn für das Programm keine statische NDZ-Generierung durchgeführt wurde, erscheinen die Felder NDZ, Prof und Sequence nicht auf dem Bildschirm

Falls die Informationen nicht auf den Parameter-Bildschirm passen, stehen Ihnen zum Navigieren folgende Tasten zur Verfügung:

PF-Taste (Bezeichnung): Funktion:
PF6 (top,--), PF9 (bottom,++) Direkter Sprung an den Anfang (--) bzw. an das Ende (++) der Liste.
PF8, PF7 (-) Vorwärtsblättern (+) bzw. Zurückblättern (-).

Verwendung des Kommandos EXPLAIN

Wichtig
Vor Verwendung des DB2-Kommandos EXPLAIN siehe LISTSQL and Explain Functions im Abschnitt Installing Natural for DB2 on z/OS in der Installation for z/OS-Dokumentation.

Das EXPLAIN-Kommando liefert Informationen darüber, welche Strategie der DB2 Optimizer bezüglich der Ausführung von SQL-Statements gewählt hat. Damit das Kommando EXPLAIN ausgeführt werden kann, muss eine PLAN_TABLE vorhanden sein. In diese Tabelle werden die vom DB2 Optimizer bestimmten Informationen geschrieben. Die entsprechende Erläuterung wird aus der PLAN_TABLE ausgelesen und auf dem Bildschirm EXPLAIN Result angezeigt.

Beispiel-Bildschirm Explain Result:

 10:57:47               ***** NATURAL TOOLS FOR SQL *****            2024-10-05
 Queryno 1                      EXPLAIN Result                      Row  1 / 1 
                                                                               
                      Estimated cost :   296.6  timerons                       
                                                                               
Qblock  Plan Mixop Acc. Match Index Pre-  Column- Access-                      
    No    No   seq type  cols only  fetch fn_eval Creator.Name                 
------ ----- ----- ---- ----- ----- ----- ------- ---------------------------- 
     1     1       R                S                                          
                                                                               
                                                                               
                                                                               
                                                                               
       Table-                            Tslock        -- sortn --  -- sortc --
 TabNo Creator.Name                      mode   Method uq jo or gr  uq jo or gr
------ --------------------------------  ------ ------ -- -- -- --  -- -- -- --
     1 NAT.DEMO                          IS            N  N  N  N   N  N  N  N 
                                                                               
                                                                               
                                                                               

                                                                               
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                  Exit  Info        More   -     +                      Canc   

Falls eine Erläuterung nicht vollständig auf dem Bildschirm angezeigt werden kann, können Sie mit den Tasten PF7 (-) bzw. PF8 (+) rückwärts bzw. vorwärts blättern.

Der Wert im Feld Estimated cost wird SQLERRD (4) in der SQLCA entnommen; es handelt sich um eine ungefähre Schätzung der benötigten Ressourcen.

Mit PF4 (Info) können die zusätzlichen, mit dem Kommando EXPLAINB gelieferten Informationen angezeigt werden.