Esecuzione di istruzioni SQL con SQL EXECUTE

Applicazione

SQL EXECUTE viene impiegato in combinazione con diverse istruzioni SQL.

Premesse

  • Codice chiave 555343
  • Tabella presente
  • Nome tabella idoneo
  • I nomi di tabelle e relative colonne devono iniziare con una lettera e non possono includere caratteri di calcolo, ad es. +. In base ai comandi SQL, tali caratteri possono comportare problemi in fase di importazione ed esportazione di dati.

Descrizione funzionale

SQL EXECUTE_01
Le frecce nere e la relativa sintassi mostrano i processi interni di SQL EXECUTE. Le frecce grigie e la relativa sintassi non appartengono direttamente al comando SQL EXECUTE.

Il controllo numerico offre le seguenti istruzioni SQL nell'istruzione SQL EXECUTE:

Istruzione

Funzione

SELECT

Selezione dei dati

CREATE SYNONYM

Creazione del sinonimo (sostituzione dell'indicazione lunga del percorso con nome corto)

DROP SYNONYM

Cancellazione del sinonimo

CREATE TABLE

Creazione della tabella

COPY TABLE

Copia della tabella

RENAME TABLE

Rinomina della tabella

DROP TABLE

Cancellazione della tabella

INSERT

Inserimento di righe della tabella

ANNULLA

Aggiornamento di righe della tabella

DELETE

Cancellazione di righe della tabella

ALTER TABLE

  • Inserimento di colonne della tabella con ADD
  • Cancellazione di colonne della tabella con DROP

RENAME COLUMN

Rinomina delle colonne della tabella

SQL EXECUTE con l'istruzione SQL SELECT

Il server SQL inserisce per righe i dati nel result-set (set di risultati). Le righe vengono numerate in ordine crescente a partire da 0. Questo numero di riga (INDEX) viene impiegato nei comandi SQL FETCH e UPDATE.

SQL EXECUTE in combinazione con l'istruzione SQL SELECT seleziona valori della tabella, li trasferisce nel result-set e apre quindi sempre una transazione. Contrariamente al comando SQL SQL SELECT la combinazione di SQL EXECUTE e istruzione SELECT può contemporaneamente selezionare diverse colonne e righe.

Nella funzione SQL ... "SELECT...WHERE..." si inseriscono i criteri di ricerca. Si delimita così all'occorrenza il numero delle righe da trasferire. Se non si utilizza tale opzione, vengono caricate tutte le righe della tabella.

Nella funzione SQL ... "SELECT...ORDER BY..." si indica il criterio di ordinamento. L'indicazione consiste nella denominazione della colonna e nella parola chiave ASC per l'ordinamento crescente o DESC per quello decrescente. Se non si utilizza tale opzione, le righe vengono memorizzate in una sequenza casuale.

Con la funzione SQL ... "SELECT...FOR UPDATE" si bloccano le righe selezionate per altre applicazioni. Le altre applicazioni possono continuare a leggere queste righe ma non modificarle. Se si apportano modifiche alle voci della tabella, è indispensabile utilizzare questa opzione.

Result-set vuoto: se non è presente alcuna riga corrispondente al criterio di ricerca, il server SQL fornisce un HANDLE valido senza voci di tabella.

Condizioni dell'indicazione WHERE

Condizione

Programmazione

Uguale

= ==

Diverso

!= <>

Minore

<

Minore o uguale

<=

Maggiore

>

Maggiore o uguale

>=

Vuoto

IS NULL

Non vuoto

IS NOT NULL

Collegamento di diverse condizioni

AND logico

AND

OR logico

OR

Note

  • È possibile definire sinonimi anche per tabelle non ancora create.
  • La sequenza delle colonne nel file creato corrisponde alla sequenza all'interno dell'istruzione AS SELECT.
  • Per le istruzioni all'interno del comando SQL è possibile impiegare anche parametri QS semplici o composti.
  • Concatenamento dei valori alfanumerici

  • Se si verifica il contenuto di un parametro QS nella visualizzazione di stato supplementare (scheda QPARA), sono visibili esclusivamente i primi 30 caratteri e quindi non il contenuto completo.
  • Scheda QPARA

Esempio

Esempio: selezione delle righe della tabella

11 SQL BIND Q881 "Tab_Example.Position_Nr"

12 SQL BIND Q882 "Tab_Example.Measure_X"

13 SQL BIND Q883 "Tab_Example.Measure_Y"

14 SQL BIND Q884 "Tab_Example.Measure_Z"

. . .

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example"

Esempio: selezione delle righe della tabella con la funzione WHERE

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20"

Esempio: selezione delle righe della tabella con la funzione WHERE e parametro Q

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’"

Esempio: definizione del nome della tabella con indicazione assoluta del percorso

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM ’V:­\table­\Tab_Example’ WHERE Position_Nr<20"

0 BEGIN PGM SQL_CREATE_TAB MM

1 SQL Q10 "CREATE SYNONYM NEW FOR 'TNC:\table\NewTab.TAB'"

; Creazione del sinonimo

2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'"

; Creazione della tabella

3 END PGM SQL_CREATE_TAB MM

0 BEGIN PGM SQL_CREATE_TABLE_QS MM

1 DECLARE STRING QS1 = "CREATE TABLE "

2 DECLARE STRING QS2 = "'TNC:\nc_prog\demo\Doku\NewTab.t' "

3 DECLARE STRING QS3 = "AS SELECT "

4 DECLARE STRING QS4 = "DL,R,DR,L "

5 DECLARE STRING QS5 = "FROM "

6 DECLARE STRING QS6 = "'TNC:\table\tool.t'"

7 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

8 SQL Q1800 QS7

9 END PGM SQL_CREATE_TABLE_QS MM