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

Las flechas negras y la sintaxis asociada muestran procesos internos de SQL EXECUTE. Las flechas grises y la sintaxis asociada no forman parte directamente de la orden SQL EXECUTE.

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

  • Añadir columnas de la tabla con ADD
  • Borrar la columna de la tabla con DROP

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.

Condiciones de la indicación WHERE

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.
  • Encadenar valores alfanuméricos

  • 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.
  • Pestaña QPARA

Ejemplo

Ejemplo: seleccionar filas de la tabla

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"

Ejemplo: Seleccionar filas de la tabla con la función WHERE.

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

Ejemplo: Seleccionar filas de la tabla con la función WHERE y parámetros Q

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

Ejemplo: Definir nombre de la tabla mediante la indicación absoluta de la ruta

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