使用SQL EXECUTE執行SQL陳述式

應用

SQL EXECUTE可用來與許多SQL指示連接。

需求

  • 密碼555343
  • 表格存在
  • 適合的表格名稱
  • 表格名稱與表格欄的開頭必須是字母,並且不得包含算術運算子(例如+),由於SQL指令,當輸入資料或讀出資料時,這些字元會造成問題。

功能說明

黑色箭頭與相關語法指示SQL SELECT的內部程序. 灰色箭頭與相關語法並不直接屬於SQL SELECT指令.

控制器在SQL EXECUTE命令下提供以下SQL陳述式:

指示

功能

SELECT

選擇資料

CREATE SYNONYM

建立同義字(用短名稱取代長路徑名稱)

DROP SYNONYM

刪除同義字

CREATE TABLE

產生表格

COPY TABLE

複製表格

RENAME TABLE

將表格更名

DROP TABLE

刪除表格

INSERT

插入表格列

UPDATE

更新表格列

DELETE

刪除表格列

ALTER TABLE

  • 使用ADD新增表格欄
  • 使用DROP刪除表格欄

RENAME COLUMN

表格欄更名

SQL EXECUTE含SQL指示SELECT

SQL伺服器逐列將資料放入結果集內。這些列以遞增方式編號,從0開始。這些列編號(INDEX)使用SQL指令FETCHUPDATE

SQL EXECUTE結合SQL指示SELECT,選擇表格值、將其傳輸至結果集並總是在處理內開啟交易。不同於SQL指令SQL SELECTSQL EXECUTESELECT指示的組合允許同時選擇多個欄與列。

在功能SQL ...“SELECT...WHERE..."內,可輸入搜尋標準。藉此讓您限制要傳輸的列數。若不使用此選項,則會載入表格內所有列。

在功能SQL ...“SELECT...ORDER BY..."內,可輸入排列標準。此輸入構成欄指定以及ASC遞增或DESC遞減的關鍵字,若您不使用此選項,則以隨機順序儲存這些列。

使用功能SQL ... "SELECT...FOR UPDATE",可鎖定選取的列用於其他應用。 其他應用可繼續讀取這些列,但是無法變更。 若對表格輸入進行變更,則絕對需要使用此選項。

空白結果集若沒有列與選擇條件匹配,則SQL伺服器回傳有效的HANDLE但無表格輸入。

WHERE輸入的條件

條件

程式編輯

等於

= ==

不等於

!= <>

小於

<

小於或等於

<=

大於

>

大於或等於

>=

IS NULL

未清空

IS NOT NULL

連結多個的情況:

邏輯AND

AND

邏輯OR

OR

備註

  • 也可針對尚未產生的表格建立同義字。
  • 已建立檔案內欄的順序對應至AS SELECT指令之內的順序。
  • 對於SQL指令之內的指示,您也可使用單一或組合的QS參數。
  • 字母數字值串接

  • 若在額外狀態指示器內檢查QS參數的內容(QPARA標籤),則將只看見前面30個字元,因此並非完整內容。
  • QPARA分頁

範例

範例:選擇表格列

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"

範例:使用WHERE函數選擇表格列

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

範例:使用WHERE函數以及Q參數選擇表格列

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

範例:使用絕對路徑資訊定義表格名稱

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

; 建立同義字

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

; 建立表格

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