Exécuter des instructions SQL avec SQL EXECUTE

Application

SQL EXECUTE s'utilise avec différentes instructions SQL.

Conditions requises

  • Code 555343
  • Tableau disponible
  • Nom de tableau adapté
  • Le nom des tableaux et des colonnes doit commencer par une lettre et ne doit pas comporter de signe opérateur, comme par exemple +. Étant donné les instructions SQL, ces signes peuvent occasionner des problèmes lors de l'importation ou de la lecture des données.

Description fonctionnelle

Les flèches noires et leur syntaxe associée illustrent des processus internes de SQL EXECUTE. Les flèches grises et leur syntaxe associée ne sont pas directement liées à l'instruction SQL EXECUTE.

La CN propose les instructions SQL suivantes dans l’instruction SQL EXECUTE :

Instruction

Fonction

SELECT

Sélectionner des données

CREATE SYNONYM

Créer un synonyme (remplacer les chemins d'accès longs par des noms courts)

DROP SYNONYM

Effacer un synonyme

CREATE TABLE

Créer un tableau

COPY TABLE

Copier un tableau

RENAME TABLE

Renommer un tableau

DROP TABLE

Effacer un tableau

INSERT

Insérer des lignes de tableau

UPDATE

Actualiser des lignes du tableau

DELETE

Supprimer des lignes du tableau

ALTER TABLE

  • Insérer des colonnes de tableau avec ADD
  • Effacer des colonnes de tableau avec DROP

RENAME COLUMN

Renommer des colonnes de tableau

SQL EXECUTE avec l’instruction SQL SELECT

Le serveur SQL sauvegarde les données ligne par ligne dans le Result-set (quantité de résultat). Les lignes sont numérotées en commençant par 0, de manière continue. Ce numéro de ligne (l'INDEX) est utilisé pour les instructions SQL FETCH et UPDATE.

SQL EXECUTE, en combinaison avec l'instruction SQL SELECT, sélectionne des valeurs du tableau, les transfère dans le Result-set et ouvre ainsi systématiquement une transaction. Contrairement à l'instruction SQL SQL SELECT, le fait de combiner SQL EXECUTE avec l'instruction SELECT permet de sélectionner plusieurs lignes et colonnes en même temps.

Dans la fonction SQL ... "SELECT...WHERE...", vous entrez les critères de recherche. Ceci vous permet de limiter au besoin le nombre de lignes à transférer. Si vous n'utilisez pas cette option, toutes les lignes du tableau seront chargées.

Dans la fonction SQL ... "SELECT...ORDER BY...", vous entrez le critère de tri. Ce critère se compose de la désignation de la colonne et du mot de passe ASC pour le tri croissant, ou DESC pour le tri décroissant. Si vous n'utilisez pas cette option, les lignes seront mises en ordre aléatoire.

Avec la fonction SQL ... "SELECT...FOR UPDATE", vous bloquez les lignes sélectionnées pour d'autres applications. D'autres applications peuvent lire ces lignes mais non pas les modifier. Si vous souhaitez modifier les entrées du tableau, vous devez impérativement utiliser cette option.

Result-set vide : Si aucune ligne ne correspond au critère de recherche, le serveur SQL retourne un HANDLE valide sans entrée de tableau.

Conditions de WHERE

Condition

Programmation

égal à

= ==

différent de

!= <>

inférieur à

<

inférieur ou égal à

<=

supérieur à

>

supérieur ou égal à

>=

vide

IS NULL

non vide

IS NOT NULL

Combiner plusieurs conditions:

ET logique

AND

OU logique

OR

Remarques

  • Vous pouvez aussi définir des synonymes pour des tableaux qui n'ont pas encore été générés.
  • L'ordre des colonnes du fichier généré respecte l'ordre de l'instruction AS SELECT.
  • Pour les consignes au sein de l'instruction SQL, vous pouvez également utiliser des paramètres QS simples ou composés.
  • Concaténer des valeurs alphanumériques

  • Si vous vérifiez le contenu d'un paramètre QS dans l'affichage d'état supplémentaire (onglet QPARA), vous ne verrez que les 30 premiers caractères, et non le contenu intégral.
  • Onglet QPARA

Exemple

Exemple : sélectionner des lignes de tableau

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"

Exemple : sélectionner des lignes du tableau avec la fonction WHERE

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

Exemple : sélectionner des lignes du tableau avec la fonction WHERE et un paramètre Q

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

Exemple : définir un nom de tableau en indiquant un chemin absolu

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'"

; Créer un synonyme

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

; Créer un tableau

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