Ejecutar instrucciones SQL con SQL EXECUTE
Aplicación
SQL EXECUTE se emplea en combinación con diferentes instrucciones SQL.
Condiciones
- Clave 555343
- Tabla disponible
- Nombres de tabla aptos
Los nombres de las tablas y las columnas de las tablas deben comenzar con una letra y no pueden contener símbolos matemáticos, por ejemplo: +. Debido a las órdenes SQL, estos símbolos pueden causar problemas al leer o seleccionar datos.
Descripción de la función
El control numérico ofrece las siguientes instrucciones SQL en el comando SQL EXECUTE:
Instrucciones | Función |
---|---|
SELECT | Seleccionar datos |
CREATE SYNONYM | Establecer un sinónimo (reemplazar una especificación de ruta larga por un nombre corto) |
DROP SYNONYM | Borrar sinónimo |
CREATE TABLE | Generar tabla |
COPY TABLE | Copiar tabla |
RENAME TABLE | Renombrar tabla |
DROP TABLE | Borrar tabla |
INSERT | Añadir filas de la tabla |
UPDATE | Actualizar filas de la tabla |
DELETE | Borrar fila de la tabla |
ALTER TABLE |
|
RENAME COLUMN | Renombrar columnas de la tabla |
SQL EXECUTE con la instrucción SQL SELECT
El servidor SQL almacena los datos fila por fila en Result-set (conjunto de resultados). Las líneas se numeran correlativamente, empezando por 0. Este número de fila (el INDEX) lo utilizan las órdenes SQL FETCH y UPDATE.
SQL EXECUTE en combinación con la instrucción SQL SELECT selecciona valores de la tabla, los transfiere al Result-set y, al hacerlo, abre siempre una transacción. Al contrario que la orden SQL SQL SELECT, la combinación de SQL EXECUTE y la instrucción SELECT posibilita una selección simultánea de varias columnas y filas.
En la función SQL ... "SELECT...WHERE...", indicar los criterios de búsqueda. Con ello delimitan, si es necesario, el número de líneas a transferir. Si no utiliza esta opción, se cargarán todas las filas de la tabla.
En la función SQL ... "SELECT...ORDER BY..." se indica el criterio de clasificación. La indicación se compone de la denominación de la columna y del código para la clasificación ascendente ASC o descendiente DESC. Si no utiliza esta opción, las filas se guardarán en una secuencia aleatoria.
Con la función SQL ... "SELECT...FOR UPDATE", se bloquean las líneas seleccionadas para otras aplicaciones. Estas líneas pueden leer otras aplicaciones, pero no las puede modificar. Si realiza modificaciones en las entradas de la tabla, necesitará esta opción obligatoriamente.
Result-set vacío: cuando ninguna fila corresponde al criterio de búsqueda, el servidor SQL devuelve una HANDLE válida sin entradas de la tabla.
Condición | Programación |
---|---|
igual | = == |
n Comparaciones mayor, menor, igual, distinto | != <> |
menor | < |
menor o igual | <= |
mayor | > |
mayor o igual | >= |
vacío | IS NULL |
no vacío | IS NOT NULL |
Enlazar varias condiciones: | |
Y lógico | AND |
O lógico | OR |
Notas
- Si se selecciona la función NC SQL EXECUTE, el control numérico solo añade el elemento sintáctico SQL en el programa NC.
- También se pueden definir sinónimos para tablas aún no creadas.
- La secuencia de las columnas en el archivo creado se corresponde con la secuencia dentro de la instrucción AS SELECT.
- Para las instrucciones dentro de la orden SQL se pueden emplear parámetros QS simples o compuestos.
- Después del elemento sintáctico WHERE, se puede definir el valor de comparación también como variable. Si se utiliza un parámetro Q, QL o QR para la comparación, el control numérico redondea el valor definido a un número entero. Si se utiliza un parámetro QS, el control numérico utiliza el valor definido.
- Si se comprueba el contenido de un parámetro QS en la indicación adicional del estado (pestaña QPARA), se ven exclusivamente los primeros 30 caracteres y, por consiguiente, no el contenido completo.
Ejemplo
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" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20" |
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'" | ; Establecer un sinónimo |
2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'" | ; Crear tabla |
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 |