SQL utasítások végrehajtása SQL EXECUTE

Alkalmazás

Az SQL EXECUTE-t különböző SQL utasításokkal összefüggésben használja.

Előfeltételek

  • Kulcsszám 555343
  • Táblázat létezik
  • Megfelelő táblázatnév
  • A táblázatneveknek és a táblázatok oszlopneveinek betűvel kell kezdődniük, és nem tartalmazhatnak számolási jeleket, pl. +. Ezen jelek az SQL parancsok kapcsán az adatok beolvasása és importálása során problémákhoz vezethetnek.

Funkcióleírás

A fekete nyilak és az ahhoz tartozó szintaktika mutatja az SQL EXECUTE belső lefutását. A szürke nyilak és az ahhoz tartozó szintaktika nem tartozik közvetlenül az SQL SELECT parancshoz.

A vezérlő a következő SQL utasításokat kínálja az SQL EXECUTE paranccsal:

Parancs

Funkciók

SELECT

Adatok kiválasztása

CREATE SYNONYM

Szinoníma készítése (hosszú útvonaladatok helyettesítése rövid névvel)

DROP SYNONYM

Szinoníma törlése

CREATE TABLE

Táblázat létrehozása

COPY TABLE

Táblázat másolása

RENAME TABLE

Táblázat átnevezése

DROP TABLE

Táblázat törlése

INSERT

Táblázatsor beszúrása

FRISSITÉS

Táblázatsor aktualizálása

DELETE

Táblázatsor törlése

ALTER TABLE

  • Az ADD segítségével táblázatoszlopok beszúrása
  • A DROP segítségével táblázatoszlopok törlése

RENAME COLUMN

Táblázatoszlopok átnevezése

SQL EXECUTE a SELECT SQL paranccsal

Az SQL szerver az adatokat soronként menti el az Result-set-ben (eredménymennyiség). A sorok 0-től növekvő sorrendben kerülnek számozásra. A sor ezen számát (az INDEX-et) a FETCH és UPDATE SQL parancsok használják.

SQL EXECUTE a SELECT SQL paranccsal összeköttetésben kiválasztja a táblázatértékeket, majd átküldi azokat a Result-set-be, és közben mindig megnyit egy tranzakciót. Az SQL SELECT SQL paranccsal ellentétben az SQL EXECUTE és a SELECT parancs kombinációja több oszlop és sor egyidejű kiválasztását teszi lehetővé.

Az SQL ... "SELECT...WHERE..." funkcióban keresési feltételeket ad meg. Ezzel a megadással az átküldendő sorok számát tudja szükség esetén behatárolni. Ha nem alkalmazza ezt az opciót, úgy a táblázat minden sora betöltésre kerül.

Az SQL ... "SELECT...ORDER BY..." funkcióban a rendezési feltételeket adja meg. Ha az oszlop megnevezését és az ASC jelölést adja meg, a rendezés növekvő sorrendben jelenik meg, míg a DESC jelöléssel csökkenő sorrend fog látszódni. Ha nem alkalmazza ezt az opciót, úgy a sorok véletlenszerű sorrendben kerülnek elmentésre.

Az SQL ... funkcióval "SELECT...FOR UPDATE" funkcióval védi le a kiválasztott sorokat más alkalmazások általi hozzáférés elől. A többi alkalmazás ekkor olvasni tudja a sorokat, de módosítani nem. Ha módosításokat hajt végre a táblázatbeírásokban, feltétlenül használja ezt az opciót.

Üres Result-set: Ha egyetlen sor sem felel meg a keresési feltételeknek, az SQL szerver érvényes HANDLE-t küld vissza, de nem jelennek meg táblázatbeírások.

A WHERE-megadásának feltételei

Feltétel

Programozás

egyenlő

= ==

nem egyenlő

!= <>

kisebb

<

kisebb vagy egyenlő

<=

nagyobb

>

nagyobb vagy egyenlő

>=

üres

nulla

nem üres

nem nulla

Több feltétel összekapcsolása:

Logikai ÉS

AND

Logikai VAGY

OR

Megjegyzések

  • A még nem létrehozott táblázatokhoz is definiálhat szinonimákat.
  • Az oszlopok sorrendje a létrehozott fájlban megegyezik a AS SELECT parancson belüli sorrenddel.
  • Az SQL-parancson belüli parancsoknak ugyanígy használhat egyszerű vagy összetett QS-paramétereket.
  • Alfanumerikus értékek összekapcsolása

  • Ha QS-paraméter tartalmát vizsgálja a kiegészítő állapotkijelzőben (QPARA fül), akkor csak az első 30 sort látja, és ezáltal nem a teljes tartalmat.
  • QPARA fül

Példa

Példa: táblázatsorok kiválasztása

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"

Példa: Táblázatsorok kiválasztása a WHERE funkcióval

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

Példa: Táblázatsorok kiválasztása a WHERE funkcióval és Q paraméterrel

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

Példa: Táblázatnév definiálása abszolút útvonalmegadással

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

; Szinonima létrehozása

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

; Táblázat létrehozása

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